home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / comm / bbs / cnet5demo.lha / !CHANGES.README < prev    next >
Text File  |  1999-03-23  |  278KB  |  6,671 lines

  1.  
  2.   -= CNET AMIGA PROFESSIONAL BULLETIN BOARD SYSTEM VERSION 4 FINAL BETA SERIES =-
  3.  
  4.                      Continued development by Ray Akey
  5.                            for ZenMetal Software
  6.  
  7.  
  8. NOTE: THIS FILE IS NO LONGER MAINTAINED. SEE HTTP://WWW.CNETBBS.NET/CHANGES/
  9.       OR THE ACCOMPANYING HTML IN THE CHANGES/ DIR OF THIS ARCHIVE.
  10.  
  11.  
  12. CNET NEWS
  13. -----------------------
  14.  
  15. <10-Jan-98>
  16.  
  17. We now have a new domain, "cnetbbs.net" which is our own CNet BBS domain.
  18. CNet systems worldwide can be reached through cnetbbs.net.  If you would like
  19. your system listed as a machine on our domain, please contact rakey@cnetbbs.net
  20. for more information. A list of cnet systems on this domain will be listed in
  21. the near future.
  22.  
  23.    We also have some new e-mail support addresses, as follows:
  24.  
  25.    bugs@cnetbbs.net ................... bug-reports
  26.    suggestions@cnetbbs.net ............ ideas and sugestions for the future
  27.    rakey@cnetbbs.net .................. Ray Akey's (mine) personal e-mail address
  28.  
  29. ...to quote a line from one of my favorite movies, "They're heeeeeeeeeere!"
  30.  
  31. (Now, on to the meat of things..)
  32.  
  33.  
  34.  
  35. Changes for v4.70
  36. -----------------
  37. 1.  Changes to the following BBSTEXT lines:
  38.  
  39.        1481:Copied attributes of %s (%d)..n1
  40.  
  41. 2.  Fixed 2 memory leaks in mail-task and cnsmtpd, respectively.
  42.  
  43. 3.  Fixed memory leak in of 4120 bytes in "bbs" every time a mail was
  44.     successfully saved using "MS" (this was the big one)
  45.  
  46. 4.  bmaint altered to properly set the ID of subboards as shown in SubboardUtil/BaseEd
  47.  
  48. 5.  New button "COMPACT" added to SubboardUtil.  Be ***VERY*** critical of your
  49.     use of this feature as it will alter the actual physical subboard numbers
  50.     of your subboards, which are referenced by other CNet features.
  51.     
  52.     CNet/5 will use a referencing method other than actual physical subboard
  53.     numbers.
  54.  
  55.     However, If you use the compact subboards button, you should be aware of
  56.     the following possiblle side-effects to CNet/4:
  57.     
  58.         1. May alter user "joined" status.  Users will have to re-join subboards
  59.            whose physical subboard numbers have changed and may also have to drop
  60.             those which fill "old" holes of subboards that may have been killed.
  61.  
  62.         2. May affect QWK offline message replies.  Replies may go to the
  63.          wrong subboards if a user yanked messages before subboard
  64.          compacting and then upload replies after the compacting has been
  65.          performed.
  66.  
  67.          QWK posts and replies made to packets yanked AFTER the compacting
  68.          will be filed correctly.
  69.  
  70.         3. May affect GATED mail subboards. Run config and check your IMP
  71.          filters as applicable to gated mail subboards, and re-set the
  72.          destination subboard/number for each IMP gate, if incorrect.
  73.  
  74.         4. May affect FTN areas and Export-to's.  Run config and check that
  75.          these settings have not changed and correct them in the event they
  76.          have changed.
  77.  
  78.     NOTE: SubboardUtil will not allow you to use the compact button until
  79.           ALL bbs ports are unloaded as any subboard activity could crash
  80.           your system.  DO NOT run any other CNet utilities, other than
  81.           Control itself, until after compacting is complete.  SubboardUtil
  82.           makes every attempt to lock subboards but some 3rd party utilities
  83.           may not adhere to proper CNet subboard locking procedures so it is
  84.           best to take these warnings under advisement.
  85.           
  86.     ** ALWAYS MAKE A BACKUP OF SYSDATA:SUBBOARDS4 BEFORE USING SUBBOARDUTIL IN **
  87.     ** CASE UNPREDICTABLE PROBLEMS OCCUR WHILE OPERATING ON SUBBOARDS.         **
  88.  
  89. 6.  Fixed bug 981201-194929: Gated mailing list messages were not threaded
  90.     properly for posts with long titles.
  91.  
  92. 7.  Fixed bug 981124-161036: 2 second delay added to password send of cnftp
  93.     when auto-connect enabled.
  94.  
  95. 8.  Fixed bug 981118-172456: BBSTEXT line 2143 parsing ignored the last
  96.     amaint "no adopt" file pattern.
  97.  
  98.  
  99.  
  100.  
  101. Changes for v4.69
  102. -----------------
  103. 1.  (reference Ticket 981004-164538) Fixed transposed event commands "SYSOP IN"
  104.     and "DOORS CLOSED" in Cron.
  105.  
  106. 2.  (reference Ticket 980928-051513) mail-task no longer keeps a lock on
  107.     its public screen when iconified or menufied.
  108.  
  109. 3.  (reference Ticket 980928-212930) CNetIRC doesn't save everything after
  110.     editing personal servers.
  111.  
  112. 4.  (reference Ticket 980921-162602) CNetIRC not hiding real name if user
  113.     has requested his real name kept private (in CNet's "EU" command).
  114.  
  115. 5.  (reference Ticket 980925-214615) IRC OPER Kill command was not handled
  116.     properly by CNetIRC.
  117.  
  118. 6.  (reference Ticket 980927-205639) carrier check was not working while
  119.     in FTP upload/download.
  120.  
  121. 7.  (reference Ticket 980921-195134) KL ignored '!' to disable prompts.
  122.  
  123. 8.  Added ARexx "STATUS" command to Mail-task.  Mail-task returns a string
  124.     containing the text "SUSPENDED" if it is paused; "RUNNING" otherwise.
  125.  
  126. 9.  Mail-task now moves "unknown" mail to a subdirectory named "UNKNOWN" in your
  127.     INet/UUMail Path as configured in CNet Config's PATHS section.
  128.  
  129. 10. BBSTEXT hook added for mail-task post-session command.  Line 2604 of BBSTEXT
  130.     should either contain a full path to an AmigaDOS command or script name or be
  131.     BLANK (that is, the line should exist but have no text whatsoever on it) if
  132.     you don't want a mail-task aftersession script executed.
  133.  
  134.  
  135.  
  136. Changes for v4.68
  137. -----------------
  138. 1.  Fixed mail-task MIME decoding bug with "Internet Mail Service" mail packets
  139.  
  140. 2.  Fixed BaseEd/EL invitation and superuser flag discrepancies.
  141.  
  142. 3.  Fixed "**NULL POINTER** deleted" output in mail-task after deleting
  143.     certain attachments.
  144.  
  145.  
  146. Changes for v4.67
  147. -----------------
  148. 1.  Fixed bug ticket 980913-025710 filed by Dammy:
  149.     When doing an RA, and you type OFF or O!, all new items are lost/cancelled.
  150.  
  151. 2.  Fixed bug ticket 980912-172044 filed by Trolan:
  152.     cnSMTPd doesn't log the remote IP in the Received: header.
  153.  
  154. 3.  Fixed the PArts command that was causing a division by zero under certain
  155.     conditions.
  156.  
  157. 4.  Fixed a MAJOR nntpget bug that caused the infamous "duplicating ghost
  158.     subboard" problem.
  159.  
  160. 5.  cnFTP command line arguments cleaned up and made more standard all around.
  161.     This means that any command/argument that is available as a CLI arg can
  162.     also now be used as arguments to the "OPEN" command.  See the cnFTP menu
  163.     by entering "?" once cnFTP is running or view the contents of
  164.     "systext:menu/ftp"
  165.  
  166. 6.  Updated systext:menu/ftp
  167.  
  168. 7.  Change to the following BBSTEXT line(s):
  169.  
  170.        2380:R=REMOTESITE,O=REMOTEPORT/K/N,D=REMOTEDIR/K,C=LOCALDIR/K,S=CONTROLSCRIPTNAME/K,L=LOGINNAME/K,P=LOGINPASS/K,T=ACCOUNT/K,G=GETFILENAME/K,Q=AUTOQUIT/S,V=DEBUG/S,A=AUTOANON/S,E=PROGRESS/K/N
  171.        2603:n1Enter a new value for transfer progress: 
  172.  
  173. 8.  Added to BBSMENU section 46:
  174.  
  175.        CP,Change Progress
  176.  
  177.  
  178. Changes for v4.66
  179. -----------------
  180. 1.  Fixed bug #96 in bugs.464: BBSTEXT line 782 is now displayed before saving
  181.     feedback text so that BBSTEXT hooks can be installed, such as those used by 
  182.     SuperTags and Lexicon.
  183.  
  184. 2.  Fixed bug #95 in bugs.464: quitting config with file and yank-task appicons
  185.     open left "move me" icons on workbench.
  186.  
  187. 3.  Fixed bug #94 in bugs.464: Paragon door exit locks up BBS port.
  188.  
  189. 4.  Fixed bug #93 in bugs.464: Using HEAder command on internet mail sent to
  190.     SYSOP resulted in error message.
  191.  
  192. 5.  Fixed bug #92 in bugs.464: From: field of internet mail being used in
  193.     [R]eplies even if reply-to: is existant.
  194.  
  195. 6.  Patched mail-task & cnetmail.library MIME decoding routines to be
  196.     compatible with more mailers. mail-task has been tested with the
  197.     following mailers:
  198.  
  199.        AOL
  200.        BeMail
  201.        DTS
  202.        Eudora
  203.        MicroDot
  204.        NetScape
  205.        Outlook Express
  206.        pc_pine
  207.        pegasus
  208.        pine
  209.        YAM
  210.  
  211. 7.  Fixed bug #72 in bugs.464: CNetIRC should not remember the channels you were
  212.     in when the /quit command is used.
  213.  
  214.  
  215.  
  216. Changes for v4.65
  217. -----------------
  218. 1.  Fixed internal bug(s) in "BBS" that caused a slight slow-down in operation.
  219.  
  220. 2.  Fixed an SMTPd mail bug which was a possible security threat.
  221.  
  222. 3.  Added the following function to the cnet.library API:
  223.  
  224.         NAME/PROTO:
  225.  
  226.            void CNetStripChars(char *string, char *stripchars);
  227.  
  228.         FUNCTION:
  229.  
  230.            Strip the given characters from a given string.
  231.  
  232.         ARGUMENTS:
  233.  
  234.            string
  235.            the string that may contain characters to be removed.
  236.  
  237.            stripchars
  238.            a string of characters that should be removed from the given
  239.            string, if present.
  240.  
  241.         RETURNS:
  242.  
  243.            none
  244.  
  245. 4   Added BBS ARexx function as follows:
  246.  
  247.         AREXX COMMAND
  248.         
  249.            gokeytosub
  250.            
  251.         SYNTAX
  252.  
  253.            gokeytosub <subboard go keyword>
  254.            
  255.         RETURNS
  256.         
  257.            the 4-byte integer address of the subboard structure with a matching
  258.            GO keyword or a NULL string if not found.
  259.  
  260.         EXAMPLE
  261.         
  262.            subgokey = "gfiles"
  263.         
  264.            /*************************************************************************
  265.             * get the address pointer to the subboard with a go keyword of "gfiles" *
  266.             * note the absense of an offset addition to the result as "Title" is    *
  267.             * offset 0 in the SubboardType4 structure found in subs.h               *
  268.             *************************************************************************/
  269.            gokeytosub gokey;titleptr=result
  270.  
  271.            /* import the string starting at the memory address contained in substart */
  272.            title = IMPORT(d2c(titleptr))
  273.  
  274.            /* Print the title of the subboard object */
  275.            transmit title
  276.  
  277.            /*************************************************************************
  278.             * get the address pointer to the subboard with a go keyword of "gfiles" *
  279.             * and add the offset (135) to the DataPath variable in                  *
  280.             * struct SubboardType4 (see subs.h)                                     *
  281.             *************************************************************************/
  282.            gokeytosub gokey;datapathptr=result+135
  283.  
  284.            /* import the string starting at the memory address contained in substart */
  285.            datapath = IMPORT(d2c(datapathptr))
  286.  
  287.            /* Print the DataPath of the subboard object */
  288.            transmit datapath
  289.  
  290.  
  291. Changes for v4.64
  292. -----------------
  293. 1.  Added cnetc.library API function CNC_FindForeignArea().
  294.  
  295.     This is the same function responsible for the "go keyword search" when
  296.     a user enters "GO <arg>" at any subboard prompt.
  297.  
  298.         NAME/PROTO:
  299.  
  300.            short CNC_FindForeignArea( char *gokey );
  301.  
  302.         FUNCTION:
  303.  
  304.            Find the physical subboard number of the subboard with the
  305.            given subdir name
  306.  
  307.         ARGUMENTS:
  308.  
  309.            gokey
  310.            the subdirname (aka GO keyword) or partial match for the subboard you
  311.            wish to locate.
  312.  
  313.         RETURNS:
  314.  
  315.            INVALID_SUB_PHYSNUM if the desired subboard is not found.
  316.            MAIN_SUB_PHYSNUM    if the go keyword describes the MAIN menu
  317.                                go keyword (eg. "main")
  318.  
  319.            otherwise, returns the index into myp->Subboard[]
  320.  
  321.         SYNTAX:
  322.  
  323.            physnum = CNC_FindForeignArea(go_keyword);
  324.  
  325.         EXAMPLE:
  326.  
  327.            short physnum;
  328.            switch( CNC_FindForeignArea("cnet") )
  329.               {
  330.               case INVALID_SUB_PHYSNUM:
  331.                  CNC_PutText("no subboard found with that GO keyword\n");
  332.                  break;
  333.  
  334.               case MAIN_SUB_PHYSNUM:
  335.                  CNC_PutText("error: That GO keyword describes the main menu which is not handled by this door\n");
  336.  
  337.               default:
  338.                  sprintf(z->ABuffer, "That GO keyword belongs to subboard '%s'", myp->Subboard[physnum]);
  339.                  CNC_PutA();
  340.                  break;
  341.               }
  342.  
  343.         SEE ALSO:
  344.  
  345.            cnet/sdk/examples/dirsize.c
  346.  
  347. 2.  Added "dirsize" module which is based on the cnetc.library
  348.     CNC_FindForeignArea() function.  Source for this module is also provided
  349.     (see include:sdk/examples/dirsize.c) so that you may customize the
  350.     module and/or use as example source for a "standard" CNet door module.
  351.  
  352. 3.  Added the following to BBSMENU section "2; Available everywhere"
  353.  
  354.        DIRSize   |#2cnet:doors/dirsize}
  355.  
  356. 4.  BBSTEXT changes as follows:
  357.  
  358.        2594:c9copied. (%d bytes)q1n1
  359.        2595:n1Entering the BBS core..n1
  360.        2596:This command cannot be used on non-file areas.n1
  361.        2597:Could not find subboard with go key of "%s"n1
  362.        2598:Subboard: %s (%s)n1
  363.        2599:          %d item%s, %d file%s; %ld byte%s (%s)n1
  364.        2600:s
  365.        2601:
  366.        2602:You must supply a subboard GO arg or be in the subboard you wish to sizen1
  367.  
  368. 5.  Added cnetc.library API function CNC_OutScan().
  369.  
  370.     CNC_OutScan() displays the a CNet item in scan/browse format.
  371.  
  372.         NAME/PROTO:
  373.  
  374.            short CNC_OutScan();
  375.  
  376.         FUNCTION:
  377.  
  378.            Prints attributes (number, title, size, etc) of the current item
  379.            to the user port screen.
  380.  
  381.         ARGUMENTS:
  382.  
  383.            none, although z->Item0 and z->ihead0 must contain information
  384.            about the "current" item.  Also, z->br must contain the item
  385.            number.  You can use the cnet.library function
  386.  
  387.               ZGetItem(&z->Item0, &z->ihead0, subboard_ptr, item_number)
  388.            
  389.            to get the item and its header.  Also make sure to set z->br to
  390.            itemnum+1 and restore the previous value of z->br after
  391.            your CNC_OutScan() call.
  392.  
  393.         RETURNS:
  394.  
  395.            none
  396.  
  397.         SYNTAX:
  398.  
  399.            CNC_OutScan();
  400.  
  401.         EXAMPLE:
  402.  
  403.            see cnet/sdk/examples/showunval.c
  404.  
  405. 6.  Reworked NNTPGet to not exit as messy.
  406.  
  407. 7.  Force trashcan empty on exit setting added as a user priv.  If you wish to
  408.     set this option per user/access group instead of using the global setting,
  409.     make sure the "config/options/page 2/Force trashcan empty on exit" setting
  410.     is disabled; otherwise, the global setting will over-ride the user priv
  411.     setting.
  412.     
  413.     NOTE: You should use "EA 1-" and set this setting initially for all users.
  414.           You should also use "EG 1-" and set this setting initially for all
  415.           access groups.
  416.  
  417. 8.  Fixed bug that caused problems when Dotoran's Toolkit (short WHO) was used
  418.     in a List area (most notably line 656 of BBSTEXT being longer than 268
  419.     characters).
  420.     
  421.     This fix should have more implications that thought.  Those who were
  422.     experiencing problems caused by BBSTEXT lines that supposedly had no
  423.     limit or at least limited by the ABuffer Size setting should see their
  424.     problems also dissapear.
  425.  
  426.  
  427.  
  428. Changes for v4.63
  429. -----------------
  430.  
  431. 1.  Fixed "bug" #79 in bugs.61: if uumail:#?.wrk exists, it should be processed
  432.     upon mail-task startup.
  433.  
  434. 2.  Fixed "bug" #80 in bugs.61: Subboard "where" string was not being set
  435.     properly in some instances.
  436.  
  437. 3.  Added 2 new API functions to cnet.lib as follows.  Remember, to use these
  438.     functions you must link with cnet.lib or cnet_reg.lib.  The latter is the
  439.     register args version of the library; the former builds the args on the
  440.     stack.
  441.  
  442.         NAME/PROTO:
  443.  
  444.            short GoKeyToSubNum ( char *name, BOOL accesscheck, BOOL ignorejoined );
  445.  
  446.         FUNCTION:
  447.  
  448.            Provides a way to get the physical subboard number (aka subboard array
  449.            index) given a SubDirName (aka Go keyword).
  450.  
  451.         ARGUMENTS:
  452.         
  453.            name
  454.            The go keyword of the subboard to be found.
  455.  
  456.            accesscheck
  457.            if TRUE will cause this function to return INVALID_SUB_PHYSNUM if
  458.            the subboard exists but the currently online user does not
  459.            have access.
  460.            
  461.            ignorejoined
  462.            if FALSE will cause this function to return INVALID_SUB_PHYSNUM
  463.            if the subboard is a "must join" subboard and the user is not joined.
  464.            if TRUE then the user's joined status is ignored.
  465.  
  466.         RETURNS:
  467.  
  468.            INVALID_SUB_PHYSNUM on subboard not found or access/join
  469.            restrictions, otherwise returns the physical subboard number of
  470.            the matching subboard.
  471.  
  472.         SYNTAX:
  473.  
  474.            PhysNum = GoKeyToSubNum( go_keyword, <TRUE|FALSE>, <TRUE|FALSE> );
  475.  
  476.         EXAMPLE:
  477.  
  478.            #include "cnetlib_protos.h"
  479.  
  480.            short PhysNum;
  481.            PhysNum = GoKeyToSubNum( "GFILES", FALSE, TRUE );
  482.            if(PhysNum == INVALID_SUB_PHYSNUM)
  483.               CNC_PutText("Could not find a subboard with Go keyword \"GFILES\"\n");
  484.            else
  485.               {
  486.               sprintf(z->ABuffer, "Subboard index of GFILES: %d\n", PhysNum);
  487.               CNC_PutA();
  488.               sprintf(z->ABuffer, "Subboard Title: %s\n", myp->Subboard[PhysNum].Title);
  489.               CNC_PutA();
  490.               }
  491.  
  492.  
  493.  
  494.         NAME/PROTO:
  495.  
  496.            UBYTE CheckJoined( struct BaseUser **p, short r );
  497.  
  498.         FUNCTION:
  499.  
  500.            Check to see if the currently online user is a member (eg. joined)
  501.            of a subboard.
  502.            
  503.         ARGUMENTS:
  504.  
  505.            p
  506.            a pointer to the address (eg. pointer to a pointer) of a new
  507.            uninitialized BaseUser structure.
  508.            
  509.            r
  510.            the physical subboard number of the subboard for which join
  511.            status is desired.
  512.  
  513.         RETURNS:
  514.  
  515.            TRUE if joined, FALSE if not.
  516.  
  517.            note that extended information is returned in p. See subs.h
  518.            for more information on the BaseUser structure.
  519.         
  520.         EXAMPLE:
  521.  
  522.            #include "cnetlib_protos.h"
  523.  
  524.            struct BaseUser *bu;
  525.            UBYTE           joined;
  526.            short           now_phys;
  527.  
  528.            if( (now_phys = GoKeyToSubNum("uploads", TRUE, FALSE)) == INVALID_SUB_PHYSNUM )
  529.               {
  530.               CNC_PutText("ERROR: Could not find subboard with go keyword \"uploads\"\n");
  531.               }
  532.            else
  533.               {
  534.               if(joined = CheckJoined( &bu, now_phys ))
  535.                  {
  536.                  CNC_PutText("You are a member of \"uploads\"\n");
  537.                  }
  538.               else
  539.                  {
  540.                  CNC_PutText("You are NOT a member of \"uploads\"\n");
  541.                  }
  542.               }
  543.  
  544.  
  545. 4.  Fixed the "logon bug".  This bug only affected users who had account
  546.     cacheing set to cache only 1 account in config/limits/page 2.
  547.  
  548.     Also note that the cause of this bug may also have been responsible for the
  549.     "growing userdata" bug/side-effect.
  550.  
  551.     These two bugs have had a remarkable impact on the CNet community..  I
  552.     almost hate to see them go as the CNet mailing list will go back to being
  553.     a quiet, disinteresting, boring, non-ZenMetal bashing and otherwise
  554.     non-irritating entity.. <sniff!> ..and if you really believe that I'm choked
  555.     up about it, you may go back to your regularly scheduled regimen of banging
  556.     your head against your monitor..
  557.  
  558. 5.  Fixed a bug where, if a user attempted to login while pointers was running,
  559.     the system would slow to a crawl and possibly fall down and go **BOOM**
  560.  
  561.     NOTE: This fix prevents users from logging in while pointers is running.
  562.           More specifically, it causes the user-login to be delayed at the
  563.           CNet Amiga copyright information screen.  This is NOT a bug but a
  564.           necessary delay to prevent user-login from corrupting dynamic
  565.           userdata.
  566.  
  567.           To prevent interruption/delay in user service, be sure that, if you
  568.           run pointers as a maintenance event via cron, that it is executed
  569.           during periods of little or no activity.
  570.  
  571.  
  572. Changes for v4.62
  573. -----------------
  574. 1.  Added repair_udata utility.  repair_udata is an AmigaDOS shell executable
  575.     that will remove "dead wood" from your bbs.udata4 file (your userfile)
  576.     it contains an "account restructuring feature that will compact your userdata
  577.     file, thereby renumbering accounts to remove spaces in the userdata file.
  578.     Of course, this feature is one that should only be used if your bbs.udata4
  579.     has been corrupted and there are "spaces" that will not go away.  Your users
  580.     would probably not be "happy campers" if you keep switching their account
  581.     numbers.
  582.    
  583.     By default, repair_udata works on sysdata:bbs.udata4 and creates a new
  584.     userdata file called sysdata:bbs.udata4_rep. It is YOUR duty to delete
  585.     or backup your current bbs.udata4 and rename bbs.udata4_rep as bbs.udata4.
  586.     repair_udata does not make the assumption that you want to replace your
  587.     current udata with the new file.
  588.    
  589.     Steps to repair a corrupt usedata file:
  590.    
  591.     1. quit CNet/control
  592.     2. run repair_udata in any AmigaDOS shell
  593.     3. **BACK-UP** and delete or rename sysdata:bbs.udata4
  594.        (you may decide to restore the old userdata file if you don't like what
  595.         repair_udata does in renumbering accounts)
  596.     4. rename sysdata:bbs.udata4_rep as sysdata:bbs.udata4
  597.     5. run control
  598.     6. run CNET:DOORS/POINTERS in any AmigaDOS Shell.
  599.     7  quit CNet/control again.
  600.     8. run CNet/control.
  601.     9. go back to watching B5 or South Park now that you've kissed your
  602.        BBS computer for the 15th time..  and by the way, clean your damned
  603.        monitor! It is nasty reading these docs through that fog..
  604.  
  605.     These steps are important and may be reduced at some later point in time
  606.     but, for now, all of the above steps are required to rid CNet of your old
  607.     userdata and use the repaired/restructured file.
  608.  
  609.     Also note that repair_udata takes an OPTIONAL command line argument which
  610.     is an alternate path/filename to work on.
  611.  
  612.       eg. repair_udata ram:bbs.udata4
  613.  
  614.       Repair_udata will repair/restructure the given file and create a new file
  615.       in the source directory, but with the added "_rep" extension.
  616.  
  617. 2 . 3rd party Door/utility coders: added 2 new Exec message (CMessage)
  618.     commands to mail-task.
  619.  
  620.     MT_PAUSE_MSG
  621.  
  622.       Pauses mail-task in much the same way as the ARexx PAUSE command and the
  623.       running/paused button on mail task.
  624.  
  625.     MT_RESUME_MSG
  626.    
  627.       Un-pauses mail-task.
  628.  
  629.     For more information on how to use CMessage(s), see the changes for v4.49
  630.     later in this document and the ensuing explanation of SendTaskMessage()
  631.     and associated code.
  632.  
  633.     Please note that you cannot be sure that mail-task has paused until
  634.     PutMsg() returns.  What this means is that YOU MUST USE SYNCHRONOUS
  635.     EXEC MESSAGES WHEN SENDING THESE COMMANDS.  If you attempt to use
  636.     asynchronous messages to pause mail-task and add mails to various,
  637.     monitored incoming mail directories, you may end up corrupting not
  638.     only the message you are filing, but also other mails received.
  639.  
  640. 3.  Fixed nntpget display bug in which nntpget reported the wrong newsgroup
  641.     title(s) on aftersession imports but DID import to the proper group(s).
  642.  
  643. 4.  Fixed local download/copy where it will now report failed if the given
  644.     local path does not exist.
  645.  
  646. 5.  Added DOECHO and DONTECHO command line arguments to ctelnet.  ctelnet
  647.     args are now:
  648.  
  649.        ctelnet <host> <port> <DOECHO|DONTECHO>
  650.  
  651.     of course, only one of either DOECHO or DONTECHO are allowed.
  652.  
  653. 6.  Fixed bug #88 in bugs.61: if you menufy telnetd upon opening
  654.     its GUI, it displays the status text "initializing" until a connection
  655.     is made or attempted.
  656.  
  657. 7.  Fixed "bug" #87 in bugs.61: systext:menu/ctelnetd_modes updated.
  658.  
  659. 8.  Fixed "bug" #86 in bugs.61: PArtitions command was ignoring Max BASE
  660.     partition setting.
  661.  
  662. 9.  Fixed "bug" #85 in bugs.61: nntpget will produce enforcer hits if invoked
  663.     while already running.
  664.  
  665. 10. Fixed "bug" #84 in bugs.61: no carrier check done while in edit mail filter
  666.     sub-section.
  667.  
  668. 11. Fixed "bug" #83 in bugs.61: UserEdit date gadgets not allowing correct
  669.     data format.
  670.  
  671. 12. Fixed "bug" #82 in bugs.61: subboard not unlocked when background
  672.     test/transform fails.
  673.  
  674. 13. Fixed "bug" #81 in bugs.61: fixed various CNetIRC edit/add/select server
  675.     quirks.
  676.  
  677. Changes for v4.61
  678. -----------------
  679. 1.  Added to "44;CNetIRC main menu" section of !bbsmenu_stock:
  680.  
  681.       E,Edit Server
  682.  
  683.     Also changed:
  684.    
  685.       A,Add/Edit server
  686.       
  687.     to:
  688.    
  689.       A,Add server
  690.  
  691. 2.  Added HEAder and REscan help to systext:menu/mailread
  692.  
  693. 3.  Fixed config bug where some configured items did not "stick".
  694.  
  695. 4.  Fixed mail-task which was cutting the "From:" part of the sender line
  696.     from the E-mail header, when saved.
  697.  
  698. 5.  Fixed Repair_Mail (RRM) which was causing an enforcer hit if the user
  699.     did not have sysop-maint and the user's current folder was empty.
  700.  
  701.  
  702. Changes for v4.60
  703. -----------------
  704. 1. Changes to the following BBSTEXT line(s):
  705.  
  706.       2591:Archivers
  707.       2592:IMP
  708.       2593:n1No E-mail header exists for this item.n1
  709.  
  710. 2. IMP and Archivers configuration editors are now stand-alone applications,
  711.    named CONFIGIMP and CONFIGARCS, respectively.  These should exist in your
  712.    assigned CNET: directory/drawer.
  713.    
  714.    You can start these configuration editors by entering their filename in any
  715.    Shell or by selecting the appropriate Control pull-down menu.
  716.    
  717.    Other portions of CNet Config will also be made stand-alone as CNet
  718.    progresses.
  719.  
  720. 3. CNet now retains internet email headers in the user's mail directory,
  721.    in a sub-directory called "HEADER".  3rd party door coders can retrieve
  722.    the internet email header for mail items if the MailHeader4.RFCHead
  723.    variable is non-zero.  The full path to the header file should be
  724.    reconstructed as follows:
  725.    
  726.       if( MailHeader4.RFCHead )
  727.           sprintf(headerpath, "mail:users/%s/HEADER/%ld", UserData.UUCP, MailHeader4.RFCHead);
  728.  
  729. 4. Changes to BBSMENU section "7;Read mail".. Specifically, the addition of
  730.    the following line to the STOCK entries for this section:
  731.    
  732.       HEAder
  733.  
  734.    When this command is entered at the "reply" prompt during mail-read (MR),
  735.    and the current item is an internet E-mail, the raw E-mail header
  736.    will be displayed for the user's inspection.
  737.  
  738.     In future CNet releases, the user will be able to specify, via a mail,
  739.    preference setting, whether he or she wishes to have internet email
  740.    displayed with a regular CNet header or an enhanced version of the
  741.    original e-mail header.
  742.  
  743. 5. Internet email handling bugfix where some MIME attachments were not processed
  744.    correctly.
  745.  
  746. 6. Added Read822Header() function to the CNet API.  Specifically, it is
  747.    a part of the cnet.lib link library.
  748.  
  749.    PROTOTYPE:
  750.  
  751.        ULONG Read822Header(BPTR hFile, char **p_Headermem, char ***p_Headerlines, int *p_linecnt)
  752.  
  753.     SYNOPSIS:
  754.     
  755.        Read a complete standard RFC-822 header from an internet email and parse
  756.        into lines in the same format as CNet's internal BBSTEXT (bm) pointers.
  757.  
  758.    ARGUMENTS:
  759.  
  760.       hFile
  761.  
  762.        The AmigaDOS file handle, as returned by Open(), pertaining to the email file.
  763.  
  764.       p_HeaderMem
  765.  
  766.        a pointer to a pointer that will receive the address of the pointer where
  767.        the email header block is located. You MUST FreeVec() the result
  768.        before calling Read822Header() again and/or before exiting your program.
  769.  
  770.       p_HeaderLines
  771.  
  772.        pointer of type char *** that will function as an array of pointers to
  773.        the lines of the RFC-822 header. You MUST FreeVec() the returned pointer
  774.        before calling Read822Header() again and/or before exiting your program.
  775.  
  776.  
  777.       p_linecnt
  778.  
  779.        pointer to the variable that will receive the count of lines in the header.
  780.  
  781.    USAGE:
  782.  
  783.       char  *headerblock=NULL;
  784.       ULONG headersize;
  785.       char  **headerlines;
  786.       int   linecnt;
  787.       BPTR  fh;
  788.  
  789.       // open email file..
  790.       if(fh=Open("my_email_file", MODE_OLDFILE))
  791.          {
  792.  
  793.          // process until Read822Header() gets no more headers in the mail file.
  794.          // note that Read822Header() is designed to function properly on
  795.          // mailfiles containing any number of emails..
  796.  
  797.          while( (headersize=Read822Header(fh, &headerblock, &headerlines, &linecnt)) && (linecnt>0) )
  798.             {
  799.             // print header lines one at a time..
  800.             for(x=0;x<linecnt;x++)
  801.                {
  802.                Printf("headerline[x]: %s\n", x, headerlines[x]);
  803.                 }
  804.  
  805.             // read & process rest of email message here..
  806.  
  807.             // note that you will have to detect the end of the email body
  808.             // text if more than one email exists in the mail-file as the file
  809.             // position of fh must be in a position such that Read822Header()
  810.             // begins reading at the START of the next email header.
  811.  
  812.             // now free the previous header memory..
  813.             if(headerblock)
  814.                FreeVec(headerblock);
  815.             if(headerlines)
  816.                FreeVec(headerlines);
  817.             }
  818.          }
  819.  
  820. 7.  Various internal quirks with MIME encapsulated emails fixed.
  821.  
  822.  
  823. Changes for v4.59
  824. -----------------
  825. 1.  By popular request, an AmigaDOS shell program has been added, which
  826.     will completely delete your user data and associated files to
  827.     allow you to restart your userlist.  This executable is called,
  828.     appropriately, "eraseallusers" and exists in your CNET: directory.
  829.     Quit Control and run CNET:ERASEALLUSERS in any Shell to restart
  830.     your userlist.  When you restart Control, even you will have to use the
  831.     "new" command to create your account #1 and login.
  832.  
  833. 2.  Changes to the following BBSTEXT lines:
  834.  
  835.        2297:n1[T]erminal Emulation, [A]ddServer, [E]dit Server, [D]elete Server, [Q]uit.n1
  836.        2311:z4c6Personal Serversq1n2
  837.        2588:Add to Global server list [Y/n]? ?1
  838.        2589:f1
  839.        2590:n1
  840.  
  841. 3.  Changes to BBSMENU section "44; CNetIRC main menu" ..
  842.  
  843.        Q,Quit
  844.        T,Terminal Defaults
  845.        A,Add/Edit Server
  846.        D,Delete Server
  847.        E,Edit Server
  848.  
  849. 4.  Added IMP mail-aliasing.  To receive mail for one mail-id and have it
  850.     saved to another LOCAL mail ID, simply do the following in IMP config:
  851.     
  852.         Name/pattern: <aliased MailID> (this is the mail id the incoming message
  853.                                         would be addressed to, after resolving)
  854.         Detect-type : MailID
  855.         Process type: Alias-to
  856.         Alias-to    : <Destination MailID> (this is the mail id of the user to
  857.                                             whom the mail is to be redirected)
  858.  
  859. 5.  Added OPTION in Config "Force Trashcan empty on mail exit" which allows
  860.     sysops to force user Trashcans empty when users exit mail-read.  Please
  861.     run Config and check Options to be sure this item is set to your
  862.     preference.
  863.  
  864.  
  865. Changes for V4.58
  866. -----------------
  867. NOTE: DUE TO CHANGES IN THE SUBBOARD FORMAT, YOU MUST RUN THE 458 UPDATE
  868.       EXECUTABLE IN ANY AMIGADOS SHELL BEFORE RUNNING THE VERSION 4.58
  869.       CONTROL PANEL, OTHERWISE YOU WILL HAVE NO SUBBOARDS LISTED IN YOUR
  870.       BASE!
  871.  
  872.       IT IS ALSO ADVISABLE TO **BACK UP** AT LEAST YOUR SYADATA:SUBBOARDS4
  873.       FILE BEFORE INSTALLING THIS UPDATE.
  874.  
  875.  
  876. 1.  Changes to the subboard loading routines so that if a corrupt subboards4
  877.     file is encountered, the system does not crash, lock-up or otherwise
  878.     fail during boot or login.
  879.  
  880. 2.  SubboardUtil (BaseEd) now has a force valid button. This button is used to
  881.     FORCE CNet to use a corrupt subboard.  CNet now ignores these corrupt
  882.     subboards but this button will force an over-ride.  Normal use should
  883.     not require the usage of this button but it is provided for a complete
  884.     implementation.
  885.  
  886. 3.  Fixed bug #69 in bugs.457: If no subboards4 exists, CNet no longer crashes
  887.     when AL is used to create a subboard.
  888.  
  889. 4.  Fixed bug #66 in bugs.457: CNet now uses a temp file for the "working"
  890.     mail import file so that additions to the user mailfile by other
  891.     applications (such as cnsmtpd) does not corrupt the working mailfile. It
  892.     is still a good idea to notify mail-task to PAUSE if you use external
  893.     internet-mail retrieval applications.
  894.  
  895.        example ARexx code to pause mail-task:
  896.  
  897.             /* options results */
  898.             ADDRESS MAILTASK_RX.1
  899.             PAUSE
  900.  
  901.        example ARexx code to unpause mail-task:
  902.  
  903.             /* options results */
  904.             ADDRESS MAILTASK_RX.1
  905.             RESUME
  906.  
  907.     mail-task will automatically rescan your internet mail directory for
  908.     new items when the RESUME command is invoked.
  909.  
  910.  
  911. 5.  Fixed bug #60 in bugs.457: CNet no longer gets an enforcer hit if no
  912.     BBSLICENSE is found.  A requester opens to note the missing file.
  913.  
  914. 6.  Fixed bug #61 in bugs.457: non-interlace systems no longer crash during
  915.     boot with a virgin (eg. not yet activated) license.
  916.  
  917.  
  918. Changes for V4.57
  919. -----------------
  920. 1.  UserEdit GUI listview received column support and sorting options.
  921.  
  922. 2.  Fixed bug #58 in bugs.456: The help command (?) is being sent as
  923.     a server command after the CNetIRC help menu is displayed.
  924.  
  925. 3.  Config was not saving the state of the "dupes to bad msgs" setting
  926.     in "tosser" section.  <- fixed!
  927.  
  928. 4.  Fixed bug #57 in bugs.456: enforcer hits occured when execution of NNTPGet
  929.     was attempted while already running.
  930.  
  931. 5.  Added tab cycling to string/integer gadgets of Config.
  932.  
  933. 6.  Fixed bug that caused the upgrade executable 3.x_to_4.x to lock up the
  934.     system during conversion of configs.
  935.  
  936. 7.  Fixed "bug" #55 in bugs.456: SubboardUtil moved to the CNET: dir where
  937.     Control expects it to be.
  938.  
  939. 8.  Fixed "bug" #56 in bugs.456: Adding a new subboard and then adopting (AO!)
  940.     a new file caused a "file/item not found" error message to be returned by
  941.     file-task when subboard flags were set to BACKGROUND test/transform.
  942.  
  943.  
  944. Changes for V4.56
  945. -----------------
  946. NOTE: The FIRST thing you should do after installing this CNet version is run
  947.       SubboardUtil (or click on the "BaseEd" button on the Control Panel if you
  948.       have already made the BBSTEXT changes) and note the ID for subboards in
  949.       the list of subboards displayed.  If these IDs are all zero (0), then
  950.       press the "(Re)Serialize" button.  This will serialize your subboards.
  951.       Serialization will be used for future internal CNet subboard activity. 
  952.  
  953.       You may use the (Re)Serialize button at any time but note the following
  954.       concerns:
  955.  
  956.          When the subboard packing feature of SubboardUtil/BaseEd is
  957.          complete, re-serializing your subboards while in PACKED state
  958.          will remove any holes(1) and therefore, your subboards file will
  959.          not be able to be expanded at a later time..  More on this in
  960.          the future when  packing and  expanding of the subboards file
  961.          is implemented.
  962.          
  963.       (1) a hole is a killed subboard that is no longer used by the system
  964.           but currently left in the subboards4 file to improve CNet
  965.           efficiency.  Holes are responsible for "ghost" subboards appearing
  966.           under certain circumstances.
  967.  
  968.  
  969. 1.  Changes to the following BBSTEXT lines:
  970.  
  971.        2543:_BaseEd
  972.  
  973. 2.  Added GUI to SubboardUtil, which is the utility that is loaded when you click
  974.     the "BaseEd" button on Control.  SubboardUtil will, as of CNet/5 host the
  975.     following features, to be added in no particular order during the CNet V4.5 to
  976.     V5.0 series:
  977.  
  978.      + o  ghost subboard removal
  979.      + o  sort by ID
  980.      + o  sort by Title
  981.      + o  editing of subboard attributes
  982.        o  tree sort
  983.        o  subboard file backup/restore
  984.        o  subboard packing/expanding
  985.        o  offline subboard relocation/edit/add/remove
  986.        o  offline message/response/file posting
  987.        o  ...plus more
  988.  
  989.  
  990.     '+' denotes features that are already present.
  991.  
  992.     NOTE: DO NOT use the "active/killed" cycle gadget to kill subboards from
  993.           your messgae/file base.  That cycle gadget is only used to mark
  994.           "ghost" subboards killed.  Once again, ghost subboards are those
  995.           subboards that were killed in the past but have been known to re-appear
  996.           (but not visually) for varying reasons.  When ghost subboards
  997.           reveal themselves, they can often cause strange behaviour when
  998.           CNet and 3rd party doors walk the subboard list from 0 to
  999.           the max number of subboards available.  Doors/utilities that walk
  1000.           the subboard list using the the CNet message base
  1001.           parent/child/next/prev pointers are not usually affected by ghost
  1002.           subboards.
  1003.  
  1004. 3.  Fixed bug #48 in bugs.455: auto-creation of mail:mimet
  1005.  
  1006. 4.  Fixed bug #49 in bugs.455: garbage in vote log where vote choice should
  1007.     be logged.
  1008.  
  1009. 5.  Fixed bug #51 (which may also fix bug #50) in bugs.455: telnetd was eating
  1010.     a lot of CPU.
  1011.  
  1012. 6.  Telnetd bug fixed where no successive telnet sessions could be accepted
  1013.     after the max autoload setting was reached, dynamically.
  1014.  
  1015. 7.  Fixed bug #46 in bugs.455: OLM prompt buggy for ASCII-mode users.
  1016.  
  1017. 8.  bug #45 in bugs.455 invalid.
  1018.  
  1019. 9.  New shell argument added NNTPGet: M=IMMEDIATE/S
  1020.  
  1021.     By default, NNTPGet waits until the seesion is over to begin importing
  1022.     retrived articles to your CNet message base. This is so that it can
  1023.     disconnect from your service provider's news server as fast as possible.
  1024.     Unfortunately, this method, although better/faster, is memory intensive.
  1025.  
  1026.     Use the IMMEDIATE arg, when invoking NNTPGet to force NNTPGet to import
  1027.     articles to the CNet message base as they are retrived from your ISP.
  1028.     This reduces NNTPGet's memory usage but lengthens the time NNTPGet stays
  1029.     connected to your ISP's news server.
  1030.  
  1031.  
  1032. Changes for V4.55
  1033. -----------------
  1034. 1.  CDROM temp support added to dmaint (CNet Commander).
  1035.  
  1036. 2.  Fixed ^r channel focus switching in CNetIRC which previously tried to
  1037.     set the focus to channels that are no longer joined. (eg. after /part)
  1038.  
  1039. 3.  BBSTEXT changes:
  1040.  
  1041.        363:n1%s is not a user of this system--use anyway [N/y]? ?0
  1042.        367:n1%s is not a member of this subboard--address anyway [N/y]? ?0
  1043.  
  1044. 4.  Fixed possible problem with NNTPGet not recognizing the server configured
  1045.     in config/defaults.
  1046.  
  1047.  
  1048. Changes for V4.54
  1049. -----------------
  1050. NOTE: YOU MUST RUN THE AMIGADOS UPGRADE EXECUTABLE "UPDATE/454" IMMEDIATELY
  1051.       AFTER INSTALLING THIS VERSION AND WITH THE **NEW** CONTROL PANEL RUNNING
  1052.       OR YOUR USERS MAY NOT BE ABLE TO ENTER SUBBOARDS.
  1053.  
  1054. 1.  Added to telnetd: Iconify, Menufy and other common capabilities that the other
  1055.     CNet tasks/servers possess.
  1056.  
  1057. 2.  IMP now searches incoming emails for SENDER: and REPLY-TO: in addition to the
  1058.     previous FROM: field on "apparent sender" traps.
  1059.  
  1060. 3.  Added "SuperUser Only" setting to subboard EL "Access Vars" screen.
  1061.     Subboards with this setting enabled will only allow only users with
  1062.     SUPERUSER priviledge flag to enter.  The upgrade executable "454"
  1063.     walks through all subboards and assures that this flag is initially OFF.
  1064.  
  1065. 4.  Changes to the following BBSTEXT line(s):
  1066.  
  1067.        437:n1Only SuperUsers can enter that area.n1
  1068.  
  1069. 5.  Added internal support for the soon-to-be-released subboard4 packing
  1070.     utility.
  1071.  
  1072. 6.  Fixed potential problem with CNetIRC DCC SENDs not being queued properly.
  1073.     Added a better multi-column structure to file-task display in the process.
  1074.  
  1075. 7.  Added display of file-task test/tx in the upper window of file-task.
  1076.  
  1077. 8.  Background file tests/transforms are now done as parallel tasks.  The sysop
  1078.     should set the "max. simultaneous test/tx" in config/limits to limit
  1079.     the number of files that can be processed simultaneously.
  1080.  
  1081.  
  1082. Changes for v4.53
  1083. -----------------
  1084. 1.  Fixed bug #9 in bugs.451 where Telnet gave an odd error "sleep (5) from telnet..."
  1085.  
  1086. 2.  Added connection info to telnetd (total vs. blocked) and grouped server info.
  1087.  
  1088. 3.  Fixed nntpget log problems which caused bugs #8 and #29 in bugs.451.
  1089.  
  1090. 4.  Changes to bbstext:
  1091.  
  1092.        2236:%6.6s  IMPORTED %d (%d bad, %d dupes) in %s
  1093.        2534:_SysInfo
  1094.        2535:_UserInfo
  1095.        2536:_Config
  1096.        2537:C_ron
  1097.        2538:_Mail
  1098.        2539:_Files
  1099.        2540:_Yanks
  1100.        2541:_News
  1101.        2542:User_Ed
  1102.        2543:FileEd
  1103.        2544:_Quit
  1104.        2545:_Doors Closed
  1105.        2546:Fi_les Closed
  1106.        2547:Mess_ages Closed
  1107.        2548:N_o New Users
  1108.        2549:Syso_p In
  1109.        2550:CNet/4 Control Panel
  1110.        2551:Run
  1111.        2552:Iconify
  1112.        2553:Menufy
  1113.        2554:Show GUI
  1114.        2555:Snapshot Position
  1115.        2556:Quit
  1116.        2557:CNet
  1117.        2558:Iconify
  1118.        2559:Text/menu reload
  1119.        2560:Write setup
  1120.        2561:Write & LOCK setup
  1121.        2562:About CNet
  1122.        2563:Quit
  1123.        2564:Actions
  1124.        2565:Clear chat call
  1125.        2566:Clear line
  1126.        2567:Close port
  1127.        2568:OnLine Message
  1128.        2569:Internet
  1129.        2570:SMTPd
  1130.        2571:Telnetd
  1131.        2572:Configuration
  1132.        2573:Config
  1133.        2574:Cron
  1134.        2575:MIME
  1135.  
  1136. 5.  Added capability of easily changing channel focus in CNetIRC by using ^r
  1137.     (ctrl-r).
  1138.  
  1139. 6.  Made more Control panel text configurable (for ease of foreign language
  1140.     translation (and wackos like me who like to change things. ;)
  1141.  
  1142.     Here is a tabular description of the bbstext lines used for Control
  1143.     panel texts:
  1144.  
  1145.       Purpose              lines
  1146.       ==================== =========
  1147.       Window buttons       2534-2549
  1148.       Window Title         2550
  1149.       Popup button labels  2551-2556
  1150.       Window menus         2557-2575
  1151.  
  1152.  
  1153. Changes for v4.52
  1154. -----------------
  1155. 1.  Fixed bug #36 in bugs.451
  1156.  
  1157. 2.  Telnetd IP blocking configuration is now saved.
  1158.  
  1159. 3.  Fixed bug #34 in bugs.451 where RELogon command was acting as a logoff
  1160.     command when used on telnet ports.
  1161.  
  1162. 4.  Changes to the following BBSTEXT lines:
  1163.  
  1164.     2530Telnet ports are active; dump users?
  1165.     2531:Dump them!
  1166.     2532:NO!!
  1167.     2533:Download selected items
  1168.  
  1169. 5.  Fixed bug #33 in bugs.451 where telnetd could not be executed again
  1170.     (service port already bound) if it was quit while telnet ports occupied
  1171.     and users have not yet logged off.  Remedied by the addition of a
  1172.     requestor that asks the sysop if telnet port users should be logged off.
  1173.     If so, users are logged off and telnetd quits; otherwise telnetd does not
  1174.     exit.
  1175.  
  1176. 6.  bbsmenu entry in menu "47; User Filedir Maintenance" changed from:
  1177.  
  1178.       D,Delete
  1179.     
  1180.     to:
  1181.  
  1182.       K,Kill
  1183.  
  1184. 7.  bbsmenu entry in menu "47; User Filedir Maintenance" added:
  1185.  
  1186.       D,Download Selected
  1187.  
  1188. 8.  bbstext line 2465 changed from:
  1189.  
  1190.        z1c7[D]elete, [M]ove, [C]opy, M[a]kedir, [R]enamez0
  1191.  
  1192.     to:
  1193.  
  1194.        z1c7[K]ill, [M]ove, [C]opy, M[a]kedir, [R]enamez0
  1195.  
  1196. 9.  bbstext line 2466 changed from:
  1197.  
  1198.        z1c7[N]ew path, F[i]lenote, Volume [L]ist, [K]=Run doorz0
  1199.  
  1200.     to:
  1201.  
  1202.        z1c7[N]ew path, F[i]lenote, Volume [L]ist, [E]=Run doorz0
  1203.  
  1204. 10. Fixed bug #38 in bugs.451.  Added capability of downloading selected items
  1205.     to dmaint.
  1206.  
  1207. 11. bbstext line 2464 changed from:
  1208.  
  1209.        z1c7[B]=BBS command, [Z]=Search, [U]ploadz0
  1210.  
  1211.     to:
  1212.  
  1213.        z1c7[B]=BBS command, [Z]=Search, [U]pload, [D]ownloadz0
  1214.  
  1215. 12. bbstext line 2460 changed from:
  1216.  
  1217.        QP XHBZUDMCARNILK  <-- hotkeys for ANSI mode; corresponds with menu hotkeys [] below
  1218.  
  1219.     to:
  1220.  
  1221.        QP XHBZUKMCARNILED  <-- hotkeys for ANSI mode; corresponds with menu hotkeys [] below
  1222.  
  1223.  
  1224.  
  1225. Changes for v4.51
  1226. -----------------
  1227. 1.  Added SUSPEND ACCOUNT priviledge flag to each account.
  1228.     Immediately after unprgading to this version, you should login
  1229.     and do the following as there may be some garbage data in the variable
  1230.     used for this proviledge setting:
  1231.  
  1232.        1. Enter the command "EL 1-"
  1233.        2. go to "Priviledge Flags"
  1234.        3. Toggle "Suspend Account" (located to the right of "Previous screen")
  1235.           until it is disabled (setting: "No").
  1236.        4. EXIT
  1237.  
  1238.     ..this will set all your user accounts as NON-SUSPENDED.  failure to do
  1239.     this may result in some of your user accounts being suspended without
  1240.     your knowledge.
  1241.  
  1242. 2.  Changes to the following BBSTEXT lines:
  1243.  
  1244.         69:n1c9Note: c3your account has been suspended by the sysop.n1
  1245.        173:ACCOUNT SUSPENDED
  1246.       1645:Please enter and kill child subboards before killing this subdirectory.n1
  1247.       2284:c7 2c4) c3Auto-decode MIMEc4:q1 %s
  1248.       2290:Auto-decode binaries in your mail and attach as selectable files? [Y/n] ?1
  1249.       2526:n1ARexx Item filing...
  1250.       2527:h6ed!n1
  1251.       2528:h8ailed!n1
  1252.       2529:TelnetD
  1253.  
  1254. 3.  Fixed bug #13 in bugs.450 relating to mail scan/read ignoring user time
  1255.     format preference.
  1256.  
  1257. 4.  Fixed bug #19 in bugs.450 where Mail-task spooled mail counter was not
  1258.     reset/adjusted after sending spooled items or after resetting via Arexx
  1259.     RESCAN command.
  1260.  
  1261. 5.  Added workaround for bug #22 in bugs.450.
  1262.  
  1263. 6.  Mail preference (MAIL;PREFS;2) added to enable/disable auto-decoding of embedded (MIME)
  1264.     binaries in email.
  1265.  
  1266. 7.  Fixed bug #24 in bugs.450 where call log display of Control was not
  1267.     reset after deletion of call log.
  1268.  
  1269. 8.  Fixed bug #30 in bugs.450 where telnetd was ignoring max-autoload ports
  1270.     setting.
  1271.  
  1272. 9.  Tended to bug #31 in bugs.450: added setting in Config/telnetd for
  1273.     "minimum available memory (kB) required" to prevent all memory from being
  1274.     used up by telnet ports.
  1275.  
  1276. 10. Tended to bug #32 in bugs.450: added logging of remote user IP to port log
  1277.     when a telnetd session is tended by CNet telnetd.
  1278.  
  1279. 11. Fixed bug #21 in bugs.450 by imposing restriction on killing of
  1280.     subdirectory subboard objects.  Only EMPTY subdirectories can be killed.
  1281.     If there are subboards (or other subdirectories) present, a subdir cannot
  1282.     be killed without first deleting the "child" subboard objects.  This
  1283.     clears up the final GO command bug and clears up yet another bug that
  1284.     was responsible for creating "ghost" subboards.
  1285.  
  1286. 12. newuser file systext:new/mailmime added to coincide with mime decode
  1287.     mail option.
  1288.     
  1289.     ...bugs reported but not fixed in this release will be fixed in an
  1290.     upcoming bugfix release.
  1291.  
  1292.  
  1293. Changes for v4.5
  1294. ----------------
  1295. 1.  new CNet utility, SubboardUtil, added:
  1296.  
  1297.     Full docs are available on the CNet WWW homepage at http://www.cnetbbs.net
  1298.  
  1299.     SubboardUtil is an AmigaDOS CLI/Shell utility used to list non-killed subboards
  1300.     and manipulate some of the attributes that are usually maintained without user
  1301.     intervention.
  1302.  
  1303.     At times, subboards4 may become corrupt in such a way that some of the CNet
  1304.     utilities operate on a seemingly non-existant subboard or one that has been
  1305.     deleted from your CNet base. It is these cases that made necessary,
  1306.     SubboardUtil.
  1307.  
  1308.     Here are the list of SubboardUtil args an an explanation of their purpose:
  1309.  
  1310.        F=SUBBOARDFILE/K - This is an optional argument that can be used to specify
  1311.                           an alternative subboards4 filename to examine/operate-on.
  1312.                           The default is sysdata:subboards4.
  1313.  
  1314.        L=LISTRANGE/K    - this is an optional argument in which you may specify a
  1315.                           physical subboard number range of subboards to list.
  1316.                           default is "1-"
  1317.  
  1318.        M=MARKKILLED/K   - BE VERY CAREFUL WITH THIS OPTION!
  1319.  
  1320.                           this is the most dangerous SubboardUtil option.
  1321.                           here you specify a range of physical subboard numbers.
  1322.                           when used, this optional toggles the "KILLED" status of
  1323.                           a subboard.
  1324.  
  1325.                           You MUST NOT use this option on a subboard that is still
  1326.                           linked in your message base. that is, ALWAYS use the
  1327.                           online "KL" command to kill subboards from your subboard
  1328.                           list(s).
  1329.  
  1330.                           You may now ask yourself, "what is the point then??" the
  1331.                           point is, due to many possible external factors such as
  1332.                           upgrade executables, third party doors and, yes, even CNet
  1333.                           bugs themselves, subboards4 may become corrupted in such a
  1334.                           way that all seems well and good.. until you run some CNet
  1335.                           support door that starts working on a subboard that you
  1336.                           killed.. one that is not available from any online list.
  1337.                           We term these "ghost subboards."
  1338.  
  1339.                           When this happens, it usually means that the subboard has
  1340.                           been unlinked from the CNet subboard base but its
  1341.                           "killed" status has not been set. IT IS THIS CASE for
  1342.                           which SubboardUtil was designed.
  1343.  
  1344.                           So, "how do I find these ghost subboards," you ask?
  1345.  
  1346.                           Simple (and not so simple).. you first need to recognize
  1347.                           that there is a problem. that is, nntpget may start trying
  1348.                           to get news from a subboard that you know you have deleted.
  1349.  
  1350.                           Example:
  1351.  
  1352.                             Let us assume that the subboard was (thank John Hoyt for
  1353.                             this example as it was his real-case)
  1354.                             "alt.audio.pink-floyd" and the "go keyword" was
  1355.                             "Pink-Floyd"
  1356.  
  1357.                             what you would do is run SubboardUtil in a shell and
  1358.                             wait for it to finish rattling off a seemingly
  1359.                             never-ending list of subboards. when complete, look for
  1360.                             a subboard in the list named "235. alt.audio.pink-floyd
  1361.                             (Pink-Floyd)" 
  1362.  
  1363.                             the "235." in this example is an important number and is
  1364.                             unique for each subboard. It is the physical subboard
  1365.                             number. It is this number that you specify when a
  1366.                             subboard utility expects a physical subboard number.
  1367.                             again, the physical subboard number is never duplicated.
  1368.                             it is always different for each subboard.
  1369.  
  1370.                             so, in our example, the physical subboard number of the
  1371.                             ghost subboard is 235. what we do now to completely mark
  1372.                             this subboard killed, so that no other utilities, CNet
  1373.                             doors and CNet itself does not attempt to access it, is:
  1374.  
  1375.                                SubboardUtil L=235 M=235
  1376.  
  1377.                             The L=235 argument was specified here only because we
  1378.                             don't want the whole list of subboards printed all over
  1379.                             again. We could have left it out and SubboardUtil would
  1380.                             have done it's job anyways..
  1381.  
  1382.                             The M=235 argument tells SubboardUtil to toggle the 
  1383.                             "killed" status of physical subboard number 235. yes,
  1384.                             you read correctly, toggle. In the event that you make
  1385.                             a boo-boo and put the wrong physical subboard number,
  1386.                             you can "undo" the operation by repeating the same
  1387.                             command again. :)
  1388.  
  1389.                             Note that SubboardUtil does not affect "loaded" subboards.
  1390.                             that is, you will have to restart/reload CNet after
  1391.                             using SubboardUtil so CNet can re-read the subboards
  1392.                             file and re-order its pointers.
  1393.  
  1394.                             SubboardUtil also does not list killed subboards. In the
  1395.                             future, an option will be added to also list those. But
  1396.                             for now, until sysops get used to this utility, the
  1397.                             "power" options will be suppressed.
  1398.  
  1399.                             SubboardUtil features will also be added to the planned
  1400.                             CNet/5 SubboardEdit GUI (the ghosted button on Control)
  1401.  
  1402. 2.  Pointers userdata maintenance tool was not working correctly unless ran
  1403.     as a CNetC door.  Running it from an AmigaDOS CLI/Shell now works
  1404.     properly.
  1405.  
  1406. 3.  Various *-task menufy/iconify/GUI-open bugs fixed.
  1407.  
  1408. 4.  Fixed problem(s) with Control not opening to its last state (iconifed, hidden
  1409.     or GUI open) after quitting.
  1410.  
  1411. 5.  More CNet API cleanup..
  1412.  
  1413.  
  1414. Changes for v4.49a
  1415. ------------------
  1416. 1.  unintentional GU shift reverted.
  1417. 2.  VDE defines corrected.
  1418.  
  1419.  
  1420. Changes for v4.49
  1421. -----------------
  1422. NOTE TO PROGRAMMERS-> ***** CNET AMIGA IS NOW Y2K READY/COMPATIBLE *****
  1423. AND 3RD PARTY DOOR ->
  1424. DEVELOPERS         -> The "Year" member of the CNet IsDate structure now
  1425.                       functions as an offset.  Its value is referenced to
  1426.                       the year 1900.
  1427.  
  1428.                       Example: if 100 is stored in the Year member, the actual
  1429.                       year is 1900+100=2000.
  1430.  
  1431.                       Example 2: if 25 is stored in the Year member, the actual
  1432.                       year is 1900+25=1925
  1433.  
  1434.                       Similarly, if you want to set the Year member yourself
  1435.                       and, the year you want stored is 1977, the value you
  1436.                       should assign to IsDate.Year is
  1437.  
  1438.                          1977-1900=77
  1439.  
  1440.                       therefore,
  1441.  
  1442.                          IsDate.Year=77
  1443.  
  1444. CHANGES 4.49:
  1445.  
  1446. 1.  Change to BBSTEXT line 1164
  1447.  
  1448.       old 1164:n1Enter the year during which you were born:n1: 19
  1449.       new 1164:n1Enter the year during which you were born:n1: 
  1450.  
  1451.     NOTE: Those who wish to do some year 2000+ (Y2K) testing, please test
  1452.           CNet in as many post-2000 situations as possible by altering your
  1453.           system clock.. and checking CNet dates..  Let us know if you
  1454.           find any problems.  If you notice any places where Y2K is not
  1455.           supported (eg two digit dates) let us know that too.  I have tried
  1456.           to get as many as I could think of without 3rd party aid..
  1457.  
  1458.  
  1459. 2.  Coders: Added two new mail-task commands..
  1460.  
  1461.       ARexx: RESCAN
  1462.              SPOOLSEND
  1463.  
  1464.           C: MT_RESCAN_MSG
  1465.              MT_SENDSPOOL_MSG
  1466.  
  1467.       RESCAN   : Tells mail-task to free the resources used for the current
  1468.                  internal mail-spool list and rescan the mail spool directory.
  1469.  
  1470.       SENDSPOOL: Tells mail-task to attempt to send the current list of
  1471.                  spooled messages.
  1472.  
  1473.     Message details..
  1474.  
  1475.       AREXX:
  1476.  
  1477.           ADDRESS('MAILTASK_RX.1")
  1478.           <COMMAND>
  1479.  
  1480.       example:
  1481.  
  1482.           ADDRESS('MAILTASK_RX.1")
  1483.           RESCAN
  1484.  
  1485.       C LANGUAGE:
  1486.  
  1487.           Simply insert the following code as a function in your application
  1488.           and pass the task portname and command number as args..
  1489.  
  1490.               // ---------------8< snip snip >8-------------
  1491.               void SendTaskMessage( char *portname, short cmd )
  1492.                   {
  1493.                   struct   MsgPort  *cpreplyp;
  1494.                   struct   CMessage cpmess;
  1495.                   struct   MsgPort  *msgport;
  1496.  
  1497.                   Forbid();
  1498.                   msgport = (struct MsgPort *)FindPort( portname );
  1499.                   Permit();
  1500.  
  1501.                   if(msgport)
  1502.                      {
  1503.                      if(cpreplyp = CreatePort( 0, 0 ))
  1504.                         {
  1505.                         cpmess.cn_Message.mn_ReplyPort    = cpreplyp;
  1506.                         cpmess.cn_Message.mn_Length       = sizeof( struct CMessage );
  1507.                         cpmess.cn_Message.mn_Node.ln_Name = "control_rendezvous";
  1508.                         cpmess.command                    = num;
  1509.  
  1510.                         PutMsg  ( (struct MsgPort *)msgport, (struct Message *)&cpmess );
  1511.                         WaitPort( cpreplyp );
  1512.                         GetMsg  ( cpreplyp );
  1513.                         DeletePort( cpreplyp );
  1514.                         }
  1515.                      }
  1516.                   }
  1517.               // ---------------8< snip snip >8--------------
  1518.  
  1519.           eg. SendTaskMessage(MAILTASKPORT, MT_RESCAN_MSG);
  1520.  
  1521.           note: SendTaskMessage() applies to all tasks, including
  1522.                 mail-task, file-task, yank-task and news-task although
  1523.                 the commands they accept differ.
  1524.  
  1525.                 *TASKPORT defines can be found in ports.h
  1526.  
  1527.                 All tasks respond to TASK_xxxxxxxx_MSG as defined in ports.h
  1528.                 Control responds to CTRL_xxxxxxx_MSG as defined in ports.h
  1529.  
  1530.  
  1531. 3.  Calls Logged counter was not being reset when "RL calls" was used
  1532.     with positive delete confirmation.
  1533.  
  1534. 4.  (alpha bug #6) Blanked/dimmed port screens were not unblanking when a
  1535.     telnetd session was detected.
  1536.  
  1537. 5.  alpha bug #7 fixed.  (War: previously, you had to have "who/handle search
  1538.     at login" option set for it to work - no longer)
  1539.  
  1540. 6.  various problems/enforcer hits & quirks with mail-task and cnsmtpd fixed.
  1541.     (alpha bug #10 for instance)
  1542.  
  1543. 7.  cnSMTPd GUI layout altered to look similar to telnetd GUI for a uniform
  1544.     look for CNet service daemons.
  1545.  
  1546. 8.  Not all *-tasks were responding to WRITE SETUP Control menuitem.
  1547.  
  1548. 9.  Various CNet API cleanup (some commonly used variable states now have
  1549.     #defines for their states/values)
  1550.  
  1551. Changes for v4.48
  1552. -----------------
  1553. 1.  Telnetd output text changed to a more aesthetic look.
  1554.  
  1555. 2.  Fixed auto-close of auto-load telnetd ports.
  1556.  
  1557. 3.  Remote socket close/disconnect (carrier check for sockets) now handled properly.
  1558.  
  1559. 4.  TCP/IP stack close/quit/disconnect now handled properly.
  1560.  
  1561. 5.  fixed (Net)Finger output for remote sites.
  1562.  
  1563. 6.  fixed max autload-ports = 0 to be unlimited.
  1564.  
  1565. Changes for v4.47
  1566. -----------------
  1567.  
  1568. (See notes in "Changes for v4.46" for info about upcoming releases and CNet/5)
  1569.  
  1570. 1.  Config/modems selection was not being deselected when the pages were
  1571.     ghosted.
  1572.  
  1573. 2.  dcc.h and ftp.h added to sdk/include.
  1574.  
  1575. 3.  various obsolete files removed from fd, pragma and include directories.
  1576.  
  1577. 4.  CODERS: added offset and guoffset.c to SDK/tools directory.  These are two
  1578.     parts of a getuser offset locator.  To use it, simple note the structure
  1579.     that you are interested in and the variable in that structure.  Then use
  1580.     offset as follows:
  1581.  
  1582.        offset [V] STRUCTURE VARIABLE
  1583.  
  1584.        where:
  1585.  
  1586.               V          is an optional argument to specify extended verbosity
  1587.               STRUCTURE  is the name of the structure where the desired
  1588.                          variable resides
  1589.               VARIABLE   the variable for which you are interested in
  1590.                          obtaining the GETUSER offset
  1591.  
  1592.     For example, if you were interested in the "Handle" variable of PortData's
  1593.     user1 structure, you would use:
  1594.  
  1595.           offset PortData user1.Handle
  1596.  
  1597.     If you were interested in the MyNewMail variable or PortData, you would
  1598.     use:
  1599.  
  1600.           offset PortData MyNewMail
  1601.  
  1602.  ** Note that offset and guoffset.c are based on off and offv as distributed
  1603.     in Dotoran's CNet Getuser offsets package.  To obtain the offv
  1604.     functionality of offset, add the optional V argument to your offset command.
  1605.  
  1606. 5.  Fixed bug #163 - if you typed AT at the "end of item" prompt, CNet would
  1607.     edit the attributes for the NEXT item in the subboard instead of the item.
  1608.     currently being read.
  1609.  
  1610. 6.  Fixed bug #162 - you cannot log off of the BBS, using "O!." It just goes
  1611.     back to the command prompt until you quit the door.
  1612.  
  1613. 7.  bugs #160-161 were fixed for v4.46 but not noted in !changes.#?
  1614.  
  1615. 8.  bug #'s 153-156 were fixed in previous versions but not removed from
  1616.     bugs.xxx.
  1617.  
  1618.  
  1619. Changes for v4.46
  1620. -----------------
  1621.  
  1622. FIRST, A FEW NOTES FROM RAY ABOUT THE FUTURE:
  1623.  
  1624.       This is the last pre 4.5 version.  Those who originally paid Perspective
  1625.       Software for CNet/4 will be required to remit $50.00 USD to ZenMetal
  1626.       Software for continued CNet support.
  1627.  
  1628.       Those who wish to PRE-PAY for CNet/5 at the reduced rate of $90.00 USD
  1629.       may do so now and avoid the additional $50.00 charge.  The tentative
  1630.       price for upgrade from CNet/4 to CNet/5, if you do not pre-pay, is
  1631.       $110.00 USD.
  1632.  
  1633.       Also, the tentative list price of CNet/5 is $175.00 USD.
  1634.  
  1635. PLANNED CNET/5 FEATURES (IN NO PARTICULAR ORDER OF IMPLEMENTATION):
  1636.  
  1637.       o  telnet daemon (actually, part of the final 4.5+ release)
  1638.       o  FTP-FTN (Do fidonet over the internet!)
  1639.       o  Task Priority manager for CNet, ports and external doors/programs
  1640.          launched by CNet or CNet's event scheduler (Cron).
  1641.       o  Removal of the 100 port limitation (in preparation for CNet
  1642.          Amiga/PPC)
  1643.       o  The long-awaited CNet Programmer's Reference Guide in Amigaguide
  1644.          form, which covers the complete CNet API - including reference for
  1645.          all CNet shared and link libraries.
  1646.       o  ftp daemon
  1647.       o  httpd (for user web-page hosting)
  1648.       o  user web page editor (with HTML tag macros)
  1649.       o  cursor-controlled ANSI interface for item browsing, selecting,
  1650.          reading, replying.
  1651.       o  Bi-directional transfer protocol support
  1652.       o  Latest XPR specification implementation
  1653.       o  Better AreaFix support for CNetToss
  1654.       o  More CNetIRC options (including DCC resume and chat and alias
  1655.          initialization on entry)
  1656.       o  It will not do your laundry, sorry..
  1657.       .. and many, many more features!
  1658.  
  1659.       Lock in now and take advantage of this reduced OEM pricing!
  1660.  
  1661. On with the changes..
  1662.  
  1663. 1.  Early alpha release of CNet's new telnetd.
  1664.  
  1665.     notes: CNet's telnetd will (currently) spawn ONLY CNet ports.  If you want
  1666.            to run trapdoor or a getty on your telnetd line(s), you will have
  1667.            to continue/start using telnetd.device or similar.
  1668.  
  1669.     OPTIONS: In config/telnetd are 2 options
  1670.  
  1671.            AUTO-LOAD PORTS:
  1672.  
  1673.                 - should be checked if you want telnet ports to be loaded as
  1674.                   required.
  1675.                 - If not checked, only loaded telnetd ports are considered for
  1676.                   telnet login.
  1677.  
  1678.            MAX. AUTO-LOAD PORTS:
  1679.  
  1680.                 - the maximum number of ports to auto-load. (0 = unlimited)
  1681.                 - **currently** 100 ports max; including ports already loaded and
  1682.                   non-telnetd ports)
  1683.  
  1684.     COMMAND LINE OPTIONS:
  1685.  
  1686.            V=VERBOSITY/K:
  1687.  
  1688.                 - of no real use at present but used to specify shell
  1689.                   output/logging verbosity.
  1690.  
  1691.                   eg. telnetd v=2
  1692.  
  1693.            P=PORT/K/N
  1694.  
  1695.                 - specify an alternate number of the port to use for telnetd
  1696.                 - default port is the port number found in your TCP/IP
  1697.                   stack's tcp/telnet db (database) entry.
  1698.  
  1699.                   examples. telnetd p=2065
  1700.                             telnetd port=1091
  1701.  
  1702.            W=PASSWORD/K: (not yet implemented)
  1703.  
  1704.                 - a rlogin password that will be required from the user before
  1705.                   telnetd will allow a CNet port to be spawned.
  1706.  
  1707.     telnetd *can* be ran multple times, although, currently there is no real
  1708.     purpose to this.  In the future this will be of use for access-control
  1709.     and restricted port login options.
  1710.  
  1711. 2.  Added "T=RUNTELNETD" option to Control's CLI/Shell options so that telnetd
  1712.     can be started by Control when it runs.
  1713.  
  1714.     As with all CNet internet servers invoked by Control, the following
  1715.     requirements apply:
  1716.  
  1717.        1. Control looks for telnetd in the directory assigned as CNET:
  1718.        2. Your TCP/IP stack should be up and running before Control runs.
  1719.  
  1720. 3.  bug #116 fixed - Trashing of status line ("**NULL POINTER**") after using
  1721.     /SERVER command in CNetIRC.
  1722.  
  1723. 4.  Release version 1.0 of the cnet.library reference guide which is just
  1724.     one in a series of guides to be released as part of the "Programmers
  1725.     Reference Guide To The CNet Amiga API"  See the SDK/reference directory
  1726.     for the AmigaGuide version.  An HTML version will be later placed on the
  1727.     CNet Amiga support web page at http://www.cnetbbs.net
  1728.  
  1729.  
  1730. Changes for v4.45
  1731. -----------------
  1732. 1.  Increased speed of initial account caching during Control boot.
  1733.  
  1734. 2.  Fixed the infamous OLx!;blah;EU;FIx bug.
  1735.  
  1736. 3.  Corrected some subboard path conflicts that could cause crashes or possibly
  1737.     corrupt item data files.
  1738.  
  1739. 4.  Began internal telnetd code.
  1740.  
  1741. 5.  Release v4.45 prematurely (before telnetd completion) so sysops may once
  1742.     again have a stable release to work with.
  1743.  
  1744. 6.  Various vote fixes made by Kelly Cochran (vote is his baby ;)
  1745.  
  1746. 7.  Changes to the following vote-related BBSTEXT lines:
  1747.  
  1748.    1526:You do not have access to add vote topics.n1
  1749.    1547:n1Kill topic %d (%s): are you sure [Y/n]? ?1
  1750.    1572:n1Topic %d does not exist.n1
  1751.    1581:Maximum # of choices (minimum 2): 
  1752.    1582:Number of floats:    
  1753.    1584:You do not have access to examine vote topics.n1
  1754.    1593:n1Topic %d does not exist.n1
  1755.    1594:         %3d %sn1
  1756.    1599:n1Invalid topic %dn1
  1757.  
  1758. Changes for v4.44
  1759. -----------------
  1760. 3RD PARTY CODERS: YOU WILL PROBABLY HAVE TO RECOMPILE ANY OF YOUR C DOORS THAT
  1761. REQUIRE CNET.LIBRARY FUNCTIONS DUE TO CNET.LIBRARY RE-ORGANIZATION AND CODE
  1762. OPTIMIZATIONS.
  1763.  
  1764. 1.  Fixed GETUSER 13/14 (z->MyMail and z->MyNewMail) updating when mail items
  1765.     are moved or deleted from INBOX.
  1766.  
  1767. 2.  Fixed a bug that may have caused crashes/software failures when
  1768.     ^C was used to interrupt NNTPGet.
  1769.  
  1770. 3.  Sum of file sizes in each subboard now displayed when entering a file
  1771.     area.
  1772.  
  1773. 4.  Changes to BBSTEXT lines 817-818
  1774.  
  1775.        817:c7: c5%4d c7file  (%ld bytes) 
  1776.        818:c7: c5%4d c7files (%ld bytes) 
  1777.  
  1778. 5.  Account cacheing addded to CNet to provide faster loading of user accounts
  1779.     and generally faster operation of mail, news and file posting and any
  1780.     activities which reference user/account data..
  1781.  
  1782. 6.  Cache size configuration options added to CNet Config/Limits.  You may
  1783.     specify a number of accounts to be dynamically cached or check "Cache all"
  1784.     to have all accounts cached.  For maximum efficiency, if you have the RAM
  1785.     to spare, cache all accounts; otherwise specify a number of accounts to
  1786.     cache where each cached account (currently) = 686 bytes.
  1787.     
  1788.        eg. a cache setting of 50 would use a maximum of 38300 bytes of
  1789.            memory at all times; assuming there are at least 50 users in your
  1790.            system user data. Note that this figure could change in the future
  1791.            as other data is added to the CNet UserData structure.
  1792.  
  1793. 7.  The following functions are new to cnet.library:
  1794.  
  1795.        struct CNUserCache *UCacheInitUser(short account);
  1796.        
  1797.          Initializes a cache entry for the user belonging to the specified account.
  1798.          Do NOT call this function on a previously initialized user.  Check
  1799.          for this case by using UCacheLookup() first.
  1800.  
  1801.          Returns:
  1802.  
  1803.               pointer to struct CNUserCache on success.
  1804.               NULL on failure.
  1805.        
  1806.        struct CNUserCache *UCacheLookup (short account);
  1807.  
  1808.          Obtain the existing cache entry for the specified user account.
  1809.  
  1810.          Returns:
  1811.  
  1812.               pointer to struct CNUserCache if user is already cached.
  1813.               NULL if user is not cached.
  1814.  
  1815.        short UCacheRead ( short account, struct UserData *user, short numaccounts);
  1816.  
  1817.               Read a sequential block of user accounts from the CNet user
  1818.               cache.
  1819.  
  1820.               This function will be later expanded to support random
  1821.               block access via CNet range format.
  1822.  
  1823.               If a user is not already cached, it will be cached and a pointer
  1824.               to the the cache entry returned.
  1825.  
  1826.               tips: specify numaccounts=1 to read a single account.
  1827.  
  1828.                     To read a BLOCK of accounts, the "user" variable must be a
  1829.                     block of memory at least as large as
  1830.                     numaccounts*sizeof(struct UserData)
  1831.  
  1832.        short UCacheWrite ( short account, struct UserData *user, short numaccounts);
  1833.  
  1834.               Write a sequential block of user accounts to the CNet user cache.
  1835.  
  1836.               If a user is not already cached, it will be cached and return a
  1837.               pointer the the updated cache entry.
  1838.  
  1839.               tips: specify numaccounts=1 to write a single account.
  1840.  
  1841.                     To write a BLOCK of accounts, the "user" variable must be a
  1842.                     block of memory at least as large as
  1843.                     numaccounts*sizeof(struct UserData)
  1844.  
  1845.        void UCacheDispose(void);
  1846.  
  1847.               Under normal usage, this function should never be required and
  1848.               its use other than for CNet shutdown purposes will most likely
  1849.               degrade system performance.
  1850.  
  1851.               Control calls this function to free all cache memory before
  1852.               exiting.
  1853.  
  1854.        Note that the user cache is PRIVATE data.  You cannot safely "walk"
  1855.        the user cache list as it is private cnet.library memory.  You CAN
  1856.        "emulate" walking the cache/userlist by using UCacheLookUp() in a loop
  1857.        from 1 to myp->Nums[0]
  1858.  
  1859.        Note that LockAccount() and UnLockAccount() support CNet cache
  1860.        functions.  You are not required to use the above functions if
  1861.        you only wish to lock, access/copy and then unlock user data.
  1862.  
  1863.        The CNUserCache structure can be found in SDK/include/users.h.
  1864.  
  1865. 8.  AMaint now filters MCI in logged subboard names.
  1866.  
  1867.  
  1868. Changes for v4.43
  1869. -----------------
  1870.  
  1871. UPDATE NOTE:   IF YOU HAVE NOT **PREVIOUSLY** DONE SO, RUN THE UPDATE
  1872.                EXECUTABLE CNET:UPDATE/442 IN AN AMIGADOS SHELL AFTER
  1873.                INSTALLING EITHER CNET VERSION 4.42 or 4.43.
  1874.  
  1875. UPDATE NOTE 2: YOU MUST RUN THE AMIGADOS EXECUTABLE CNET:UPDATE/443 IN
  1876.                AN AMIGADOS SHELL AFTER INSTALLING BUT BEFORE RUNNING CNET
  1877.                VERSION 4.43.
  1878.  
  1879. 1.  #?-task iconify/menufy and window positions are now only saved when
  1880.     the Control screen menu WRITE SETUP is selected.  This means, you position
  1881.     your task GUIs where you want them, iconify, menufy or leave the windows
  1882.     open and then select the Control WRITE SETUP menuitem and the states of the
  1883.     tasks are saved.
  1884.  
  1885. 2.  Fixed garbage text that was printed when "DS" is used.
  1886.  
  1887. 3.  Fixed file selecting in DM/DMaint/CNetCommander.
  1888.  
  1889. 4.  Mail-task ARexx port fixed.
  1890.  
  1891. 5.  Corrected a typo in the CNET:REXX/#?mailtask#? scripts where the mail-task
  1892.     ARexx port was wrongly addressed as MAILTASK_RX instead of MAILTASK_RX.1
  1893.  
  1894. 6.  Added LOCAL VIEWER string to Archiver configuration.  If this setting is
  1895.     not empty and the online user is in LOCAL MODE, the command used here will
  1896.     be used to view/examine a file when the [E]xamine command is used within
  1897.     CNet and CNetCommander.
  1898.  
  1899.     For example, you may set up a .guide ArcType and have the local viewer
  1900.     set as "MultiView %s" for OS3+ or "AmigaGuide %s" for OS2.1+.  When a
  1901.     .guide file is examined, Multiview or AmigaGuide will be used to view the
  1902.     file.  When regular remote online users use examine, the archive will be
  1903.     examined using the regular archive view command.
  1904.  
  1905. 7.  ViewTypes added to Archiver View command.  Due to the rising need to view
  1906.     non-native CNet file types (eg. Amigaguide, HTML, etc) to users, this
  1907.     setting has been added to CNet.  This allows you to set more than just
  1908.     a "piped" AmigaDOS shell command to be used for archive "viewing".
  1909.  
  1910.     For example, for the View command, you may set "Moretext %s" at the command,
  1911.     and set the ViewType (the button just to the left of the view command)
  1912.     to "Shell" and the user now has interactive control over the viewer;
  1913.     allowing him to use his keyboard to "control" the viewer.
  1914.  
  1915.     NOTE: All previous VIEW types should be set to "PIPE" unless you change
  1916.           to a method other than output redirection, which is the only
  1917.           method that previously existed.  The update executable "443"
  1918.           sets all old archiver view types to PIPE.
  1919.  
  1920.     NOTE 2: "redirection" is simply a way of piping output-only 
  1921.              text to CNet Amiga for display.  Redirection can
  1922.              be distinguished over other types by the presence of a
  1923.              greater-than operator (>) in a view command.
  1924.  
  1925.               eg:
  1926.  
  1927.                   type >%s "%s"
  1928.  
  1929.               as opposed to:
  1930.  
  1931.                   mycommand %s "%s"
  1932.  
  1933.              the former type is a PIPE redirection where the latter is either
  1934.              a Shell, CNetC or ARexx command.
  1935.  
  1936.     A rough guide of deciding which ViewType you need is:
  1937.  
  1938.         1. Run the command in a regular AmigaDOS shell (unless the command is
  1939.            a CNetC executable or ARexx script).
  1940.  
  1941.         2. If the command is interactive, allowing you to use your cursor (or
  1942.            other) keys to control the program, then you should set the ViewType
  1943.            to SHELL and use the following view command template as a guide:
  1944.  
  1945.                view_command "%s"
  1946.  
  1947.         3. If the command simply displays the output to your shell then set the
  1948.            ViewType to PIPE and use >%s in your view command as per the
  1949.            following guide:
  1950.  
  1951.                view_command >%s "%s"
  1952.  
  1953.     Following are the Viewer settings for a .guide file-type:
  1954.  
  1955.         View Command: MoreText "%s"
  1956.         View Type:    Shell
  1957.         Local Viewer: AmigaGuide "%s"
  1958.  
  1959. 8.  GETUSERs 13 and 14 are now set at logon and updated when new mail is
  1960.     received.
  1961.  
  1962. 9.  dmaint bug fixed where ESC key caused unusual/hazardous results by
  1963.     issuing improper commands when arrow/cursor keys used thereafter.
  1964.  
  1965. 10. Changes to BBSTEXT line 502.
  1966.  
  1967.        502:n1Total Space: c7%d%% q1of c7%6s q1Used.q1  c7%7s q1Free.n1
  1968.  
  1969. 11. Fixed repetetive printing of info about EACH partition upon subboard entry.
  1970.  
  1971. 12. For those who liked seeing info about all partitions, a "PARTS" command
  1972.     has been added to the new base, new message, and browse menu section of
  1973.     BBSMENU.  You may use this command to obtain info about your BaseX:
  1974.     partitions.
  1975.  
  1976.     If you use the PArts command in a subboard, you will see info only about
  1977.     all valid partitions of that subboard.
  1978.  
  1979.     If you use the PArts command at the "main" menu, you will see info about
  1980.     all available partitions, from 0 to the number configured as "max BaseX:
  1981.     partition", in CNet Config.
  1982.  
  1983. 13. Added BBSTEXT line 2525.
  1984.  
  1985.        2525:n1Partition c7%dq1: c7%d%% q1of c7%6s q1used, c7%7s q1free.
  1986.  
  1987. 14. Fixed potential security problem in dmaint.
  1988.  
  1989. 15. Added "lastcommand" ARexx command to CNETREXXn ARexx port.  This command
  1990.     is used to find out the last command entered by the user on any given
  1991.     port.
  1992.  
  1993. 16. Fixed bug where use of BOTLOGON ARexx command did not un-blank/dim the
  1994.     CNet port.
  1995.  
  1996. 17. Read log (RL) command made non-re-entrant.
  1997.  
  1998. 18. ARexx "OLM" command added to BBS ports (portname CNETREXXn where
  1999.     n=a valid port number)
  2000.  
  2001.     Syntax: OLM <from port> <message text>
  2002.  
  2003.     If <from port> is 100, then the OLM is treated as a system OLM.
  2004.  
  2005.        ex. Send an OLM to port 0, adressed as if it were from
  2006.            the user on port 1:
  2007.  
  2008.            address CNETREXX0
  2009.            OLM 1 This is an OLM test
  2010.  
  2011.        ex. Send a SYSTEM OLM:
  2012.  
  2013.            address CNETREXX0
  2014.            OLM 100 This is an OLM test
  2015.  
  2016. 19. First compile of 030 versions of key CNet executables.
  2017.  
  2018. 20. Implemented a "hiwater" method of receiving usenet news using the
  2019.     USEHIWATER option of NNTPGet.  With this option you MUST still supply the
  2020.     NEWNEWS arg of NNTPGet.
  2021.  
  2022.     Many ISPs disable the NEWNEWS command in order to reduce the CPU usage
  2023.     of their local-machine NNTP server and reduce the load on their system.
  2024.  
  2025.     The USEHIWATER option should be used ONLY if your ISP has disabled the
  2026.     NEWNEWS command of their NNTP news server as the NEWNEWS command is still
  2027.     the most efficient (fastest) method of receiving new news.
  2028.  
  2029.      eg. NNTPGet S=news.myserver.com NEWNEWS USEHIWATER
  2030.      
  2031.          OR
  2032.          
  2033.          NNTPGet S=news.myserver.com N U
  2034.  
  2035.     You may, of course, omit the news server part of this command if you have
  2036.     your news server configured in CNet Config/Defaults/News Server
  2037.  
  2038. Changes for v4.41/4.42
  2039. ----------------------
  2040.  
  2041. UPDATE NOTE: YOU MUST RUN THE AMIGADOS SHELL EXECUTABLE CNET:UPDATE/442 IN
  2042.              AN AMIGADOS SHELL AFTER INSTALLING BUT BEFORE RUNNING CNET
  2043.              VERSION 4.42.
  2044.  
  2045. 1.  [J]oin command (join subboards, not join conference) hits fixed.
  2046.  
  2047. 2.  Fixed MimeEd screen problem with non-lace workbench configurations.
  2048.  
  2049. 3.  file-task now adds a filenote to received DCC files: "From: <nick>"
  2050.  
  2051. 4.  Added BBSTEXT lines 2435-2524.
  2052.  
  2053.        2435:ITEM UPDATED:
  2054.        2436:From: %s
  2055.        2437:[DIR]
  2056.        2438:%ld
  2057.        2439:c7%3d. %s%-24.24s %s%9.9s q1
  2058.        2440::2c7%s:0q1
  2059.        2441:n1c4[c7Dc4]c6eletec4, [c7Ec4]c6xaminec4, [c7*c4]=c6Select, c4[c7RETURNc4]=c6Nextn1
  2060.        2442:n1FileMaint: 
  2061.        2443:n1Delete %s? [Y/n/a/q] 
  2062.        2444:YNAQ
  2063.        2445: {}
  2064.        2446: {}
  2065.        2447: All!n1
  2066.        2448: Quit!n1
  2067.        2449: %s deleted.n1
  2068.        2450: n1Could not delete %s because:
  2069.        2451: Directory %s not empty.  You must delete the files within first.n1
  2070.        2452: n1unknown error.
  2071.        2453: n1Press any key..g1n1
  2072.        2454: c5
  2073.        2455: c2
  2074.        2456:c1
  2075.        2457:c6
  2076.        2458:n1You are already at the root directory.n1
  2077.        2459:n1That directory is empty.n1
  2078.        2460:QP XHBZUDMCARNILK  <-- hotkeys for ANSI mode; corresponds with menu hotkeys [] below
  2079.        2461:z1                                                                              z0
  2080.        2462:z4                                                                              z0
  2081.        2463:z1c7[ENTER]=Examine, [UP], [DWN], [Q]uit, [P]arent, [Space]=Select, [X], [H]elpz0
  2082.        2464:z1c7[B]=BBS command, [Z]=Search, [U]ploadz0
  2083.        2465:z1c7[D]elete, [M]ove, [C]opy, M[a]kedir, [R]enamez0
  2084.        2466:z1c7[N]ew path, F[i]lenote, Volume [L]ist, [K]=Run doorz0
  2085.        2467:z4Path: %-50.50s %21.21sz0
  2086.        2468:%ld selected
  2087.        2469:f1
  2088.        2470:z4Directory empty!z0
  2089.        2471:z4Internal error; can not find item. :(z0
  2090.        2472:z4%sz0
  2091.        2473:%s selected
  2092.        2474:%s unselected
  2093.        2475:Max selections per batch reached.
  2094.        2476:%-25.25s %9ld %-38.38s
  2095.        2477: {}
  2096.        2478: {}
  2097.        2479:>
  2098.        2480: 
  2099.        2481:z4c3BBS Command: cf
  2100.        2482:z0
  2101.        2483:Invalid command..w1
  2102.        2484:Not empty. You must delete the files within first!
  2103.        2485:failed
  2104.        2486:unknown
  2105.        2487:%s deleted
  2106.        2488:z4c3Makedir: cf
  2107.        2489:z4c3New Path: cf
  2108.        2490:%-35.35s %-38.38s
  2109.        2491:z4c3Filenote: cf
  2110.        2492:%s is read-only
  2111.        2493:
  2112.        2494:z4c3Examining %s..cf
  2113.        2495:CNet Commander Help
  2114.        2496:Volume/Assign list
  2115.        2497: %s
  2116.        2498: [DIR] %s
  2117.        2499: [VOL] %s
  2118.        2500: [ASN] %s
  2119.        2501:z4c3Getting directory %s..cf
  2120.        2502:z4c3Move to/as: cf
  2121.        2503:%s moved as %s
  2122.        2504:z4c3Copy to/as: cf
  2123.        2505:z4c3Rename as: cf
  2124.        2506:z4c3Amiga[D]OS/[C]NetC/[A]Rexx or [P]aragon? cf
  2125.        2507:z4c3%s door path/filename: cf
  2126.        2508:AmigaDOS
  2127.        2509:CNetC
  2128.        2510:ARexx
  2129.        2511:Paragon
  2130.        2512:{}
  2131.        2513:{}
  2132.        2514:{}
  2133.        2515:{}
  2134.        2516:{}
  2135.        2517:z4c3Search pattern (wildcards allowed): cf
  2136.        2518:z4c3Recurse into subdirectories? [N/y] ?0 cf
  2137.        2519:z4c3Searching.. please be patient..cf
  2138.        2520:z4c3Upload filename: cf
  2139.        2521:z4c3Uploading..cf
  2140.        2522:z4c3That command cannot be executed in local mode.cf
  2141.        2523:!
  2142.        2524:Directory empty.
  2143.  
  2144. 5.  Added BBSMENU item "DM" to the "2; Available Everywhere" section.
  2145.  
  2146. 6.  Added BBSMENU SECTION "47; User Filedir Maintenance"
  2147.  
  2148. 7.  3RD PARTY PROGRAMMERS/CODERS:
  2149.  
  2150.     Added new cnet.library API functions for reading/scanning/searching
  2151.     directories and the DOS volume/assign list.  Here are the prototypes
  2152.     (also see sdk/include/protos/cnet_protos.h).
  2153.  
  2154.     IMPORTANT NOTES
  2155.  
  2156.        For better door functionality, all functions used by CNetReadDir() are
  2157.        also accessible to the CNet door programmer. You may use these
  2158.        functions to build (or add to) your own directory lists or even get
  2159.        an assign/volume list. However, There are some things to note:
  2160.  
  2161.        Be aware that the TOP entry of a CNetFileEntry list is just a directory
  2162.        PLACEHOLDER.  This placeholder is a CNetFileEntry structure with
  2163.        it's filename field being that of the full path to the directory
  2164.        represented by the list.  The parent variable of this list placeholder
  2165.        should be set to the parent list (if any) that is to be linked to.  If
  2166.        the parent variable is NOT set (eg. CNetFileEntry.parent==NULL), then
  2167.        the user cannot regress any further "back" than the current directory.
  2168.  
  2169.        Also note that YOU must create this header yourself by calling
  2170.        CreateDirEntry(), assign your list pointer to the pointer returned and
  2171.        then you MUST strcpy() (or sprintf()), to the filename variable, the
  2172.        full path to the directory under examination.  If you do not fill the
  2173.        header entry with the full path, CNetReadDir() may not work correctly.
  2174.  
  2175.        Also note that if you use CNetReadDir() to read a directory, you do not
  2176.        have to worry about creating the list placeholder.  CNetReadDir does
  2177.        this internally. The only time you need to worry about creating the
  2178.        list header is if your are building a filelist by hand.
  2179.  
  2180.        If you want to ADD to a CNetFileEntry list (eg. after using CreateDir()
  2181.        to create a new directory or after having a file copied to a directory
  2182.        represented by the current list) you can do so simply by calling
  2183.        InsertDirEntry(), but **ONLY after** either creating the list header and
  2184.        attaching it as the FIRST structure in your linked list of
  2185.        CNetFileEntry structures or by having already called CNetReadDir()
  2186.        previously.
  2187.  
  2188.        The CNetFileEntry structure is defined in sdk/include/files.h.
  2189.  
  2190.        See ReadDirTest.c for example CNetReadDir() usage.
  2191.  
  2192.        See ReadDirTest2.c for an advanced example of creating a filelist using
  2193.        the discrete cnet.library functions.
  2194.  
  2195.     Prototypes/Descriptions:
  2196.  
  2197.        struct CNetFileEntry *CreateDirEntry (struct FileInfoBlock *fib);
  2198.  
  2199.          Allocate memory for a CNetFileEntry structure and return pointer to a
  2200.          mem block or NULL if fail.  CreateDirEntry expects a
  2201.          pointer to FileInfoBlock structure.  This structure is used/filled by
  2202.          dos.library's Examine()/ExNext() functions.  You may also "fake" a
  2203.          FileInfoBlock by allocating memory and filling the FilInfoBlock
  2204.          structure variables, therafter call CreateDirEntry().  CreateDirEntry
  2205.          is "directory aware" in that CNetFileEntry's ftype variable is set to
  2206.          1 for directories and 0 for regular files.  Other internal uses set
  2207.          ftype to 2 for volumes and 3 for assigns.
  2208.  
  2209.        void InsertDirEntry (struct CNetFileEntry **list, struct CNetFileEntry *newentry);
  2210.  
  2211.          Insert a CNetFileEntry into a list, sorted alphabetically; DIRS first.
  2212.  
  2213.        struct CNetFileEntry *CNetReadDir (char *path, UBYTE recurse);
  2214.  
  2215.          Read a complete directory into a linked list of CNetFileEntry structures with
  2216.          parent/child directory retention and next and previous file entry linking;
  2217.          with recurse option.
  2218.  
  2219.        void CNetDisposeDir (struct CNetFileEntry **list);
  2220.  
  2221.          Free the COMPLETE file list tree as returned by CNetReadDir() or created
  2222.          using CreateDirEntry()  calls.
  2223.  
  2224.        struct CNetFileEntry *GetDirEntry (LONG ordinal, struct CNetFileEntry *list);
  2225.  
  2226.          Get a pointer to the CNetFileEntry specified by the ordinal number, with the
  2227.          first usable file entry being entry number 1.
  2228.  
  2229.        LONG CountDirEntries (struct CNetFileEntry *list);
  2230.  
  2231.          Count the number of entries on the current list (not including parent and
  2232.          child entries nor including the "path placeholder/header" entry)
  2233.  
  2234.        struct CNetFileEntry *FindParent (struct CNetFileEntry *list);
  2235.  
  2236.          Return a pointer to the PARENT dir if found; else returns pointer to the
  2237.          same list passed as list arg.
  2238.  
  2239.        struct CNetFileEntry *NextDirEntry (struct CNetFileEntry *list, struct CNetFileEntry *nowentry);
  2240.  
  2241.          Return a pointer to the next file entry or NULL if none.
  2242.  
  2243.        struct CNetFileEntry *PrevDirEntry (struct CNetFileEntry *list, struct CNetFileEntry *nowentry);
  2244.  
  2245.          Return a pointer to the previous file entry or NULL if none.
  2246.  
  2247.        struct CNetFileEntry *HeaderEntry (struct CNetFileEntry *anyentry);
  2248.  
  2249.          Return a pointer to the header file entry.
  2250.  
  2251.        struct CNetFileEntry *LastEntry (struct CNetFileEntry *anyentry);
  2252.  
  2253.          Return a pointer to the last file entry in the list or NULL if list empty.
  2254.  
  2255.        LONG EntryOrdinal (struct CNetFileEntry *entry, struct CNetFileEntry *list);
  2256.  
  2257.          Return the ordinal number of the specified file entry pointer, relative to
  2258.          the top of the current list.
  2259.  
  2260.        struct CNetFileEntry *GetVolAssList(void);
  2261.  
  2262.          Get a list of system volumes and assigns and return a pointer to the
  2263.          list.
  2264.  
  2265.        struct CNetFileEntry *CNetSearchEntry (struct CNetFileEntry *list, struct CNetFileEntry **destlist, char *pattern, UBYTE recurse);
  2266.  
  2267.          Search a CNetFileEntry list for files matching an AmigaDOS file pattern.
  2268.  
  2269.          Includes option to search sub-directories (recurse).
  2270.  
  2271.          Do to recursion and addition of the "matches" to a single tier list,
  2272.          this function allows you to specify a list pointer (destlist) to which
  2273.          the matches will be attached and returns a pointer to that same
  2274.          list.  If no destination list pointer is passed, a new linked list
  2275.          is created and a pointer to that list returned if matches are found.
  2276.  
  2277.          Also note that the full path to the matched entry is set as the
  2278.          CNetFileEntry filenote.  This was done to allow easy display of
  2279.          the filename (using FilePart()) in a fixed width output string
  2280.          while allowing SelectAndDownload(CNetFileEntry.filename) to be used
  2281.          for selecting and downloading resultant matches.
  2282.  
  2283.          See the SDK/EXAMPLE_SOURCE directory example "CNetFileFind.c" for
  2284.          indepth usage of CNetSearchEntry().
  2285.  
  2286. 8.  Removed the 20 archiver limitation.
  2287.  
  2288. Changes for V4.40
  2289. -----------------
  2290. 1.  cnSMTPd VRFY command now allows user@host input where recognized hostnames
  2291.     for the local system are any of the hostnames defined in config/smtpd.
  2292.  
  2293.     Note that cnSMTPd VRFY replies with the hostname configured in the
  2294.     config/MAIN page.
  2295.  
  2296.     Also, since cnSMTPd does not do forwarding, users at other hosts are not
  2297.     examined and thus an error (case: unknown user) is returned to the
  2298.     querying system.
  2299.  
  2300. 2.  CNetIRC now re-sets the Where/Doing field after a successful "everywhere
  2301.     command" is used.  Some BBS functions previously changed this field and
  2302.     CNetIRC did not reset it.
  2303.  
  2304. 3.  Commodity status of Control now complete. The "Hide Interface" button
  2305.     of Exchange will remove ALL "visible" indications that Control is running,
  2306.     whether it be iconified or GUI opened.  The "Show Interface" button of
  2307.     Exchange notifies Control to makes its GUI visible.  The "Remove" button
  2308.     of Exchange quits Control WITHOUT the "Are you sure you want to quit
  2309.     Control" prompt being displayed.
  2310.  
  2311. 4.  Bug-fix ..  Cron could be executed while already running.
  2312.  
  2313. 5.  Fixed a mail yanking bug where the mail "TO" user was not filled in the
  2314.     resulting QWK packet.
  2315.  
  2316. 6.  Fixed a memory leak (present since CNet v4.0) where, in some cases, memory
  2317.     allocated for events would not be freed. Memory would slowly trickle away
  2318.     at the rate of a low number of bytes (multiplied by the number of events
  2319.     configured) every 3 seconds. This bug could have had the potential to eat
  2320.     large amounts of memory if you had many events configured and in a
  2321.     contiguous time block (eg. no "rest" time between events).  After fixing
  2322.     and testing with over 50 events configured, this bug is history and no
  2323.     more memory leaks exist.
  2324.  
  2325. 7.  Fixed a bug where some events would not be executed.
  2326.  
  2327. 8.  Fixed bug induced in v4.39 that caused uploads to get the wrong
  2328.     description and/or possibly write the wrong description (and AmigaDOS
  2329.     filenote) on other files.
  2330.  
  2331. 9.  Amaint, by default, now UPDATES items if their file size or AmigaDOS date
  2332.     has changed.  To disable this feature, use the amaint "noupdatefiles" arg.
  2333.  
  2334.     Note that this feature now tags MISSING files also so, if you choose not
  2335.     to disable this feature, the "missing" door is no longer required unless
  2336.     you want to specifically find/mark only missing files without requiring
  2337.     other duties of amaint.
  2338.  
  2339. 10. Mail spool files were being corrupted.  New format for spool files prevents
  2340.     this. Spool files created before this fix cannot be recovered.
  2341.  
  2342. 11. Fixed discrepancy in the cnet TIME command where user logon time and
  2343.     length of time online did not corroborate.
  2344.  
  2345. 12. sysdata:log/UUMAIL added for logging of internet mail imports by mail-task
  2346.     and/or iuumail.
  2347.  
  2348.  
  2349. Changes for V4.39
  2350. -----------------
  2351. 1.  Fixed enforcer hits/port lockup when "/server <server name>" was used in
  2352.     CNetIRC.
  2353.  
  2354. 2.  Fixed Control & #?-tasks public screen handling.  No longer does Control
  2355.     keep a lock on the public screen it opens on.  Un-Iconify/Menufy now
  2356.     arbitrates the task/Control window to the public screen again.
  2357.  
  2358. 3.  Fixed internet mail import (UUMAIL) so that "corrupt" mail items do not
  2359.     cause mail-task/iuumail to skip good messages in incoming user e-mail
  2360.     batches.
  2361.  
  2362. 4.  CNet version numbering of myp->s1 is now consistent with "VERSION" reply.
  2363.  
  2364.       eg.  VERSION = 4.28c     myp->s1 = 4283
  2365.            VERSION = 4.29a     myp->s1 = 4391
  2366.            VERSION = 4.39      myp->s1 = 4290
  2367.  
  2368.       Note how the last digit of s1 is the numeric representation of the
  2369.       letter in the CNet version string.
  2370.  
  2371. 5.  Control display quirk fixed where IDLE TIME may have been displayed as
  2372.     excessively large (and incorrect)  values.
  2373.  
  2374. 6.  OLM prompt now displays the number of OLMs waiting to be displayed.
  2375.     Currently, this counts system OLMs.  This may or may not change in the
  2376.     future.
  2377.  
  2378. 7.  Change to BBSTEXT line 895.
  2379.  
  2380. <New format for bug-fixes begins>
  2381.  
  2382. 8.  Fixed bug-report #60 - "ML twice in a row causes potential lockups"
  2383.  
  2384. 9.  Fixed bug-report #119 - "If you use ML to move an area into an empty
  2385.     subdir, it will not work."
  2386.  
  2387. 10. Changes to BBSTEXT lines 1780-1781.
  2388.  
  2389. 11. Fixed bug-report #127 - "Any direct/msg/file area that exists on main level
  2390.     will not have proper prompts set when entered."
  2391.  
  2392. 12. Expanded CNet's "SubDoing" facility to it's most powerful state.  If you
  2393.     set a doing for a SUBDIRECTORY in the "EL"  VDE of that subdirectory, you
  2394.     are now setting the "Where" string for the whole sub-tree.  Any subboard
  2395.     that does not have a SubDoing set, will have it's doing set to the nearest
  2396.     parent subdirectory SubDoing string.
  2397.  
  2398.     To elaborate;  Consider the following subboard tree:
  2399.     
  2400.              Aminet -
  2401.                      |
  2402.                      |-- biz
  2403.                      |
  2404.                      |-- comm -
  2405.                                |- bbs
  2406.                                |- cnet
  2407.                     
  2408.     If only the aminet subdir has a SubDoing of "Aminet mirror" set on it,
  2409.     this Subdoing will be displayed when entering any of the tree elements
  2410.     below it.
  2411.  
  2412.     However, if the subboard "bbs" has a SubDoing also, in entering the bbs
  2413.     subboard, that Subdoing string will be displayed.  Entering any other
  2414.     subdir or subboard in that tree structure will get the aminet default
  2415.     subdoing string displayed.
  2416.  
  2417.     Further consider that, if the "comm" subdir also has a SubDoing of "BBS
  2418.     software" set on it, only it and any of it's child subboards (eg. "cnet"
  2419.     in this example) would have that doing displayed, when entered. The "bbs"
  2420.     subboard would still get it's custom SubDoing displayed and, all subboards
  2421.     and subdirs above the "comm" directory would get the default aminet
  2422.     SubDoing displayed.
  2423.  
  2424. 13. Fixed bug-report #128 - "OLMs are @#$%ing up SplitChat"
  2425.  
  2426. 14. Fixed bug-report #130 - "Config/defaults/SMTPd timeout can only be set to
  2427.     a value greater than or equal to 61.  (60 seconds and up are valid values)
  2428.  
  2429. 15. Fixed bug-report #131 - "In user-ed, date settings required HH:MM to be
  2430.     added to input date strings and gadget would not accept them."  Limitation
  2431.     removed.  Only DD-MMM-YY are now required.
  2432.  
  2433. 16. Fixed bug-report #132 - "Using MO in mail to move an item into the same
  2434.     folder it's already in will delete the item."  RESTRICTION IMPOSED: You
  2435.     may not move a mail item to the same folder it is already in.
  2436.  
  2437. 17. Change to BBSTEXT line 720.
  2438.  
  2439. 18. Fixed bug-report #133 - "If you have an area dropped, GO will not find
  2440.     it."
  2441.  
  2442. 19. Fixed bug-report #134 - "Control hangs when iconified or menufied and is
  2443.     sent ARexx message/command."
  2444.  
  2445. 20. Fixed bug-report #140 - "OLM count is decreasing even for redisplayed OLMs
  2446.     (./Again command)."
  2447.  
  2448. 21. (no bug-report #) Fixed MORE? prompt that was prematurely displayed after
  2449.     reading each OLM.
  2450.  
  2451. 22. Fixed bug-report #142 - "If you read a file item and then try and "AT" it
  2452.     at the "respond" prompt, nothing happens."
  2453.  
  2454. 23. Fixed bug-report #139 - "BBS is not giving file/byte credit rewards to
  2455.     file uploader when another user downloads their uploads."  Note: rewarding
  2456.     WAS working but no mail mail was being sent for notification of reward.
  2457.  
  2458. 24. Imported mail is now sorted by IMPORT date rather than SENT date when
  2459.     Newest First or Newest Last are set in EP.
  2460.  
  2461. 25. Fixed bug-report #137 - Mail is now sorted by RECEIVED (import) date
  2462.     rather than sent date.
  2463.  
  2464. 26. Added VRFY command to SMTPd.
  2465.  
  2466. 27. Auto-anonymous FTP added to cnFTP with mail-address sent automatically
  2467.     for anonymous logins.  Over-ride defaultemail address using the P=<pass>
  2468.     option.
  2469.  
  2470. 28  DOSOLM now has an "I=IGNOREOWN" switch to prevent DOSOLM from sending
  2471.     an OLM to the "F=FROM" port.
  2472.  
  2473.     For those who don't know what DOSOLM is, it is an AmigaDOS door/command
  2474.     that allows you tosend OLMs to/from online users from CLI/Shell and/or
  2475.     ARexx/AmigaDOS scripts.
  2476.  
  2477.     DOSOLM will now be bundled with CNet Amiga.  Note that DOSOLM is still a
  2478.     "Metal Software" product and is included as a "contributor" item.
  2479.  
  2480. 29. The "F=FROM" argument to DOSOLM can now be a port RANGE.
  2481.  
  2482. 30. Boot dates added to Control and each BBS port.  These dates are currently
  2483.     in the status text displayed when the CNet [T]ime command is used online.
  2484.  
  2485. 31. Changes to BBSTEXT lines 287-291.
  2486.  
  2487. 32. BBSTEXT lines 2411-2420 added.
  2488.  
  2489. 33. coders: New function in cnet4.library; CNetUpTime()
  2490.     This function is used to form a string which states the amount of time,
  2491.     elapsed since some past time, relative to "current time".
  2492.  
  2493.         syntax:
  2494.  
  2495.            output_str_ptr=CNetUpTime(output_string, time_diff_in_secs)
  2496.  
  2497.         CNetC example:
  2498.  
  2499.            char utstring[70]; // "xxx years, xxx weeks, xxx days, xxx hours,
  2500.                               // xxx minutes and xxx seconds" possible.
  2501.                               // more space required if you use MCI in BBSTEXT
  2502.            ULONG uptime;
  2503.            uptime=CNetTimeNowDiff(CNetImplodeTime(&z->BootDate));
  2504.            CNetUpTime(utstring, uptime);
  2505.            sprintf(z->ABuffer, "Time passed since port booted: %s\n",
  2506.                                utstring);
  2507.            CNC_PutA();
  2508.  
  2509.         More compact version of above example:
  2510.  
  2511.            char utstring[70];
  2512.            ULONG uptime=CNetTimeNowDiff(CNetImplodeTime(&z->BootDate));
  2513.            sprintf(z->ABuffer, "Time passed since port booted: %s\n",
  2514.                                CNetUpTime(utstring, uptime));
  2515.            CNC_PutA();
  2516.  
  2517.         NOTE:  if no time has passed (eg. no time diference), a blank string
  2518.                ("") will be returned.
  2519.  
  2520.         NOTE2: This function, like most other CNet library functions, requires
  2521.                Control to be running.
  2522.  
  2523. 35. CNetUpTime() routine implemented in ReadOLM() to replace lame
  2524.     "xx:yy mins ago" text.
  2525.  
  2526. 34. Changes to BBSTEXT lines 893, 898 and 920.
  2527.  
  2528. 35. Toss now states that it is already running if executed a second time.
  2529.     Previously, it exited without the verbosity.
  2530.  
  2531. 36. Fixed quirk in cnet:close in which a "garbage" option (eg. "cnet:close dsflkj")
  2532.     caused all ports to be closed.
  2533.  
  2534. 37. UserInfo gadget is now enabled when an online user is selected and disabled when
  2535.     an unoccupied port, offline port or no port is selected.
  2536.  
  2537. 38. Command UPTIME added to the end of BBSMENU section "2; Available everywhere".
  2538.  
  2539. 39. BBSTEXT lines 2426-2427 added.
  2540.  
  2541. 40. AmigaDOS "UPTIME" command created for use in scripts and local/offline
  2542.     situations.
  2543.  
  2544. Changes for V4.38
  2545. -----------------
  2546. 1.  Added RESUME to cnFTP.
  2547.  
  2548. 2.  Added BBSTEXT line 2402.
  2549.  
  2550. 3.  Added REGET command to BBSMENU section 46 (CNet FTP Menu).  This command
  2551.     is usually unnecessary as CNEt auto-detects existing files but has been
  2552.     added for a complete implementation.  This command may also be used
  2553.     instead of "get" to FORCE resume of a file.
  2554.  
  2555. 4.  NEW split-screen chat added to Chat Chat (CC)!!  Use CTRL-T to toggle your
  2556.     preferred chat mode.  Chat mode preference is saved at logoff after toggled
  2557.     while in chat.  Because of this there is no need for a chat preference item
  2558.     in EP so don't go looking for one. :)
  2559.  
  2560. 5.  BBSTEXT lines 2403-2409 added.
  2561.  
  2562. 6.  Change to BBSTEXT line 929.
  2563.  
  2564. 7.  Changes to BBSTEXT line 2406.
  2565.  
  2566. 8.  CNetIRC now respects a user's private real name status.
  2567.  
  2568. 9.  IMP AmigaDOS/script fidonet msg processing fixed.
  2569.  
  2570. 10. Mail alias kill "name" field expanded to the proper maximum length.
  2571.  
  2572. 11. CNetIRC was previously reading too many characters in the server field,
  2573.     NULLing out the server name.
  2574.  
  2575. 12. Cleanup of some file-task DCC quirks such as removing completed and aborted
  2576.     requests from the file-task process/queue listview.
  2577.  
  2578. 13. Carrier drop in ARexx doors no longer results in an enforcer hit.
  2579.  
  2580. 14. Where/doing field of control was not updating due to a subboard locking
  2581.     bug which locked up amaint and any other doors that operated on subboards.
  2582.  
  2583. 15. Change to BBSTEXT line 2380.
  2584.  
  2585.  
  2586. Changes for V4.37
  2587. -----------------
  2588. 1.  CPS display added to cnFTP transfer status.
  2589.  
  2590. 2.  Mailing-list gated msgs are now showing in NM scan.
  2591.  
  2592. 3.  Change to BBSTEXT line 2396.
  2593.  
  2594. 4.  Added "SMTPD Temp" path to Config.  MAKE SURE you set this variable to
  2595.     a large partition in case a large (eg. MEGABYTES) e-mail is received.
  2596.     If SMTPD TEMP is not specified, "T:" is used as default.
  2597.  
  2598. 5.  Trailing digit now added to attachment filename (to create unique
  2599.     filename) only if the file-attach exists in unmolested state.
  2600.  
  2601. 6.  CNetIRC Channel list is now cleared when changing servers.
  2602.  
  2603. 7.  Entering "GO <unknown go key>" in a Door/List area no longer results in CNet
  2604.     returning to MAIN after pressing return at the GO prompt.
  2605.  
  2606. 8.  Removed enforcer hit(s) that occurred when user used upload file-attach.
  2607.  
  2608. 9.  Fixed "More?" prompt during mail alias list.
  2609.  
  2610. 10. Fixed enforcer hit(s) that occurred in CNetIRC when users had no servers
  2611.     configured and pressed ENTER to connect to the default server.
  2612.  
  2613. 11. CNet's identd was sending "-1@domain" if there was no ROOT USERNAME defined
  2614.     in CONFIG/DEFAULTS.  CNet now sends "bbsuser@domain" if ROOT USERNAME is
  2615.     not set.
  2616.  
  2617. 12. Fixed file-task ARexx port which was previously not responding unless the
  2618.     file-task window was opened. The result of this bug was that the calling
  2619.     process/task (that ran the arexx script for file-task) locked up.  This
  2620.     was most noteable in CNetIRC duting a DCC send/get.
  2621.  
  2622.  
  2623. Changes for V4.36
  2624. -----------------
  2625. 1.  A dedicated CNet FTP client has been added!  This client accepts
  2626.     CLI, CNetC, BBSMenu and MCI lanched args.  An arg template can be found on
  2627.     BBSTEXT line 2380.
  2628.  
  2629.     argument template:
  2630.  
  2631.    R=RemoteSite,P=RemotePort,D=RemoteDir,L=LocalDir,S=ControlScriptName,
  2632.         L=LoginName,P=LoginPass,A=Account,G=GetFilename,O=AutoQuit
  2633.  
  2634.     Arguments should be separated by spaces.  Arguments that may have a space
  2635.     embedded within should be enclosed in double quotes (").
  2636.  
  2637.     There are a lot of "to-dos" for this client.  This first alpha/release is
  2638.     to get something out there so that CNEt sysops do not have to sacrifice
  2639.     the security of their systems by allowing their users to use ncFTP online.
  2640.  
  2641.     There is no cnFTP SEND command yet.  Send will be implemented for the next
  2642.     alpha/beta release.
  2643.  
  2644.     Note: Downloaded files, gotten using the FTP "get <filename>" command
  2645.           are downloaded to the users' MAIL:USERS/<mail_id>/FILES/ directory
  2646.           where <mail_id> is the user's UUCP/MAIL-ID.
  2647.  
  2648. 2.  Added BBSTEXT lines 2364-2394 (see !bbstext_stock)
  2649.  
  2650. 3.  Added BBSMENU section 46.  (see !bbsmenu_stock)
  2651.  
  2652. 4.  Background file-task transform should now process files that are not
  2653.     a testable format.
  2654.  
  2655. 5.  Progress output added to FTP get.
  2656.  
  2657. 6.  Added BBSTEXT lines 2395-2398.
  2658.  
  2659. 7.  Changes to BBSTEXT line 2390.
  2660.  
  2661. 8.  Added carrier check (!!) to cnFTP.
  2662.  
  2663. 9.  Added remote connection check to commands affecting remote site (LS, GET, etc).
  2664.  
  2665. 10. Added Menu systext:menu/ftp
  2666.  
  2667. 11. Added FTP "SEND" support.
  2668.  
  2669. 11. Added BBSTEXT lines 2399-2401.
  2670.  
  2671. 12. Changes/Additions to entire BBSMENU section "46;CNet FTP Menu".
  2672.  
  2673.  
  2674. Changes from V4.33a to V4.35
  2675. ----------------------------
  2676. 1.  Added DCC STATUS listview to file-task.  This listview shows ALL active
  2677.     DCC sessions.
  2678.  
  2679. 2.  Bugfix where DCC listview display was trashed when file-task menufied or
  2680.     iconified and re-opened.
  2681.  
  2682. 3.  Added DCC logging.  Add the following log entry to config/logs:
  2683.  
  2684.       LOG NAME: DCC
  2685.         LOG ID: 414
  2686.  
  2687. 4.  Added new cnetircvar ARexx hooks to CNetIRC as described below.
  2688.  
  2689.       "cnetircvar p" returns the PortData address of the current port.
  2690.       "cnetircvar m" returns the MainPort address.
  2691.  
  2692. 5.  Fixed DCC SEND bug which effectively doubled the number of bytes sent.
  2693.  
  2694. 6.  Fixed a Toss problem where out-of-zone echomail was being sent to bad if
  2695.     the zonegate had the same node number as the receiving node.
  2696.  
  2697. 7.  Fixed mail bug in which FIDONET file-attaches were not being added to
  2698.     outbound .FLO file.
  2699.  
  2700. 8.  Fixed port lockup problem when using BBS commands (eg. backslash \ commands)
  2701.     while in CNetIRC.
  2702.  
  2703. 9.  Fixed Control guru when "Control ?" was used and bad/unknown arguments
  2704.     were entered.
  2705.  
  2706. 10. Vote rewritten as a 3rd party project by Kelly Cochran. (thanks Kelly).
  2707.  
  2708. 11. Fixed mail upload-attach description prompt.
  2709.  
  2710. 12. NO SIGNATURES flag was being ignored by Usenet News subboards.
  2711.  
  2712.  
  2713. 13. User mail ID is now configurable by the USER at login.  After initially
  2714.     set by the user, only the SYSOP may change mail ID.
  2715.  
  2716. 14. ANSI detect is now an external door, supplied as C source and found in the
  2717.     SDK/Examples/ directory of your CNet archive.  To add it to your system,
  2718.     simply replace BBSTEXT line 22 with the following:
  2719.  
  2720.        #2cnet:doors/ansidetect}
  2721.  
  2722.     Make sure to copy ansidetect from sdk/Example_source/ to cnet:doors/
  2723.  
  2724. 15. Users can no longer YANK the messages in another user's mailbox during
  2725.     MailVerify (MV).
  2726.  
  2727. 16. Fixed cTelnet problem where port in pre-configured host list was not being
  2728.     used during connect.  You MUST run the update/TelnetUPD435 update executable
  2729.     and then use the EH command on ALL configured telnet hosts, fixing the
  2730.     telnet port for each host.
  2731.  
  2732.     Remember: Usual/default telnet port is port 23.  You should use this number
  2733.               unless the host has a custom settting.
  2734.  
  2735. 17. Changes to BBSTEXT line 2205.
  2736.  
  2737. 18. Fixed QWK E-Mail uploads which were not importing properly.
  2738.  
  2739.  
  2740. Changes for V4.33 (ALPHA)
  2741. -------------------------
  2742. 1.  Cron screen was left open if non-lace Workbench used.
  2743.  
  2744. 2.  Added another function CNetEndOfRange() to cnet4.library.
  2745.     This function returns TRUE (1) if the current element returned by
  2746.     CNetNextRange() is the last element in a CNet range
  2747.  
  2748.     For example,
  2749.  
  2750.     if the range "1-10,15,30" were passed to CNetFindRange() and, as CNet
  2751.     range protocol suggests, CNetNextRange() were called in a for() loop,
  2752.     CNetEndOfRange() would return FALSE (0) for all values returned by
  2753.     CNetNextRange() until it returned a value of 30.
  2754.  
  2755.     There is an example of CNet range usage in the SDK/Examples directory,
  2756.     called RangeTest2.c.
  2757.  
  2758. 3.  CNetPrevRange() added to cnet4.library.  Operation is the same as
  2759.     CNetNextRange() but returns the next LOWER element/value in the range.
  2760.  
  2761. 4.  CNetStartOfRange() added to cnet4.library.  This function returns TRUE (1)
  2762.     if the current element/value is the first in the range.
  2763.  
  2764.     The example sdk source rangetest2.c has been expanded to show an example
  2765.     of this function also.
  2766.  
  2767. 5.  Fixed a bug with MailID that created MailIDs such as a1, a2, s1, s2
  2768.     when the handle or real name contained only a single word.
  2769.  
  2770. 6.  UserEdit was not accurately displaying the state PRIVS/RECEIVE EMAIL flag
  2771.     and (possibly) a few other PRIVS flags..
  2772.  
  2773. 7.  Config now automatically adjusts the subboard NETWORK affiliation when an
  2774.     FTN network is deleted from FTN config.
  2775.  
  2776. 8.  Changes to BBSTEXT lines 2086-2288.
  2777.  
  2778. 9.  Added QUIT button to Cron for those who like buttons with keyboard shortcuts.
  2779.  
  2780. 10. DCC GET and CLOSE are now implemented in CNetIRC.  file-task performs the
  2781.     actual DCC file transfer leaving CNetIRC free to do its thing.  This also
  2782.     provides the additional safeguard that if a CNetIRC problem occurs, your DCC
  2783.     transfer not be affected and vice-versa.  Files gotten with DCC GET are
  2784.     stored in the users' mail:users/user_id/FILES/ directory and are currently
  2785.     NOT auto-selected to the user's select list but this will be the action taken
  2786.     in the final 4.33 release.  Until then, users may use Kelly Cochrane's CINS
  2787.     user-dir file-maint to select and download files received with DCC GET.
  2788.  
  2789.       NOTE: that CNetIRC uses the script CNET:REXX/DCCGET.REXX to notify file-task
  2790.             to get a file from an offering remote user. Please be sure to update
  2791.             your system with ALL files in this archive (except systext:#? and
  2792.             sysdata:#?) whether or not the file sizes have changed!
  2793.  
  2794.      NOTE2: It bears mention that users must use DCC CLOSE if they wish to
  2795.             DCC requests from their DCC list/queue after failed or successful
  2796.             transfers.  Although, it is not a problem if they do not as each
  2797.             port's DCC list is cleaned up when a user logs off the respective
  2798.             CNet port/node.
  2799.  
  2800.      DCC COMMANDS IMPLEMENTED
  2801.      ------------------------
  2802.  
  2803.    DCC LIST
  2804.    DCC CLOSE <range>
  2805.    DCC GET <range>
  2806.    DCC SEND <name of file from user file dir>
  2807.  
  2808.         where <range> is a typical CNet range (eg. 1,3 or 1-3,6 etc.)
  2809.  
  2810.           BUGS: Currently does not complain-to/notify the user if file-task is
  2811.                 not running.  In the final CNet v4.33 release, users will be
  2812.                 notified if they cannot DCC SEND/GET at any moment that
  2813.                 file-task is not running.  DCC chat will be handled by CNetIRC
  2814.                 itself, when implemented.
  2815.  
  2816.     OVERSIGHTS: No DCC RESUME (yet)
  2817.  
  2818.  
  2819. Changes/fixes for V4.31/4.32
  2820. -----------------------------
  2821. 1.  BBSTEXT/MENU reload trashed pointers so WHO display was corrupt.
  2822.     Change to BBSTEXT line 659.
  2823.  
  2824. 2.  Change to BBSTEXT line 426.
  2825.  
  2826. 3.  Added systext:menu/mail-attach
  2827.  
  2828. 4.  New BBSMENU section 45 for mail-attach menu.
  2829.  
  2830. 5.  CNet now allows uploading to mailbox for file-attach.  To do this,
  2831.     enter MAIL SEND (MS) and fill in the recipient and Subject.  At the mail
  2832.     flags prompt, press F (for Freq) until it toggles to "SEND".  Press enter
  2833.     to continue to the File-Attach menu.
  2834.  
  2835.     Note that, currently, only single file-attaches are possible for each mail.
  2836.     This limit will definitely be removed in the near future.
  2837.  
  2838. 6.  Added cnetc.library.  This is the new standard for CNetC door communications
  2839.     with CNet.  The same functions that were in empty.c and cnetc.lib are
  2840.     available in the shared library cnetc.library.  The shared library versions
  2841.     of these functions are preceded by "CNC_".  For example, what was once
  2842.     PutText() is now CNC_PutText().   Please see the new empty.c for example
  2843.     usage.  Your C door MUST call CNC_InitContext() on startup and
  2844.     CNC_DisposeContext() when your door is done communication with it's CNet
  2845.     port.  empty.c is wrapper code with these functions already inserted within.
  2846.  
  2847. 7.  CNetIRC's ARexx port is now fully functional.  Each copy of CNetIRC has its
  2848.     own ARexx port, named "CNET_IRCx" where the x is the user's port number. The
  2849.     most important and most used ARexx command is the cnetirccmd, shown below.
  2850.  
  2851.        ARexx command   Function              Examples
  2852.        --------------- --------------------- ---------------------------
  2853.        cnetirccmd      send an IRC command   cnetirccmd '/me is away'
  2854.                                              cnetirccmd '/" print to user screen'
  2855.                                              cnetirccmd '/msg HMetal Hey buddy!'
  2856.  
  2857.     A more detailed list of CNetIRC ARexx commands will be made available later.
  2858.  
  2859.     Also see the included example ARexx scripts in CNET:IRCREXX for more
  2860.     information.
  2861.  
  2862.     Please make sure that the script bit is enabled on these ARexx scripts by
  2863.     using the AmigaDOS shell command "protect cnet:ircrexx/#? +s"
  2864.  
  2865.     Also, to get the default Arexx macros into your /alias list, use the CNetIRC
  2866.     command "/e .ircrc.rexx" Once executed, you will see the text
  2867.     "*!* INIT .ircrc" printed on your CNetIRC screen.
  2868.  
  2869. 8.  Fixed the Control SysInfo window activity graph (AG).
  2870.  
  2871. 9.  Converted all ZenMetal CNetC doors to use cnetc.library format.
  2872.  
  2873. 10. Added ARexx command "checkolms" which will check if OLMs are waiting
  2874.     and display them immediately.  Returns 1 if OLMs are displayed; 0 if
  2875.     none were displayed.
  2876.  
  2877. 11. Added the following CNetC commands:
  2878.  
  2879.          CNC_MailSend(account_number)  - sends mail to the specified user
  2880.          CNC_ReadLog(logname)          - read the log named logname in systext:log/
  2881.          CNC_OpenDisplay(port_number)  - open the port screen for port port_number
  2882.  
  2883. 12. Added TestOpenDisplay.c example combination CNetC/AmigaDOS door to sdk
  2884.     examples drawer.
  2885.  
  2886. 13. Added file transfer ETA display to Control panel.  ETA appears in the "Where"
  2887.     section of the control panel ports display during an upload or download.
  2888.  
  2889. 14. File-attaches to Internet mail are now MIME-encoded to be included in the
  2890.     mail body.  To accomplish this, a file "extension" field has been added
  2891.     for each mime type in Mime-Ed.  You may put multiple extensions in each
  2892.     mime type.  For example, if you have configured a JPG mime type, you might
  2893.     have the following MIME configuration for that type:
  2894.     
  2895.           Content-Type     : image/jpg
  2896.           Encoding         : base64
  2897.           Mail Save Method : File-attach
  2898.           News Save Method : Leave as body text (not implemented yet)
  2899.           Decode Command   : c:base64 decode from %f to %t
  2900.           Encode Command   : c:base64 encode from %f to %t
  2901.           Subboard ID      : <leave blank>
  2902.           File Extension(s): jpg jpeg jfif
  2903.  
  2904.     Using this example, when a user uploads a file with a .jpg, .jpeg or .jfif
  2905.     extension, it will be encoded using the command,
  2906.     "c:base64 endcode from <image_file> to <mime_encoded_file>"
  2907.  
  2908.     note: CNet will use the description the user specifies at the "Filenote:"
  2909.           prompt, during file-attach upload, as the mime description.  For
  2910.           adopted files, CNet will use the EXISTING file description and does
  2911.           not (currently) prompt for a (new) filenote.
  2912.  
  2913. 15. Changes to BBSTEXT lines 2226-2229.
  2914.  
  2915. 16. Edit Finger (EF) was inserting newlines in the wrong place(s).
  2916.  
  2917. 17. Dupe subboard GO KEY prompt would not allow changing of the GO KEY if a dupe
  2918.     was entered.
  2919.  
  2920. 18. MCI is no longer filtered in local mail.
  2921.  
  2922. 19. Fixed Control sysinfo window percentage/graph that was being corrupted on
  2923.     refresh.
  2924.  
  2925. 20. stdio (window) output of TOSS in default verbosity was munged.  Node number
  2926.     of packet origin was being overwritten by the number of messages imported.
  2927.  
  2928. 21. Cron received the BGUI treatment.  ALL CNet GUIs finally use BGUI. Also
  2929.     fixed some bugs relating to event execution that may have caused SOME
  2930.     events to be skipped.
  2931.  
  2932. 22. Added a "Last Executed" display to Cron so one can see when an event was
  2933.     last invoked.  Note that this "Last Executed" date will be reset whenever
  2934.     an event is altered (eg. change of start time, repeat hours, mins, seconds,
  2935.     etc.)
  2936.  
  2937. 23. cnSMTPd timeout now configurable in Config/Defaults/SMTPD Timeout and is
  2938.     specified in seconds.  Minimum timeout is 60 seconds and nothing lower
  2939.     will be accepted by Config.  If you are experiencing a lot of "Connection
  2940.     lost" messages in cnSMTPd log/window, increase this value in 30 seconds
  2941.     increments until the problem is resolved.
  2942.  
  2943. 24. Added ListEvents.c to sdk/ExampleSource drawer.  This example source shows
  2944.     all configured events and their attributes.  It is an AmigaDOS Shell
  2945.     executable and must be linked with cnet_reg.lib.
  2946.  
  2947. 25. Added ARexx command SETQUERY to BBS:
  2948.  
  2949.            Command: SETQUERY <opts>
  2950.            Purpose: Used to set prompt attributes for the ARexx QUERY command.
  2951.                     The <opts> decide how the prompt responds to user
  2952.                     input.  These opts are the very same arguments that can be
  2953.                     specified as flags to the EnterLine() function of CNet.
  2954.         Applicable
  2955.           to ARexx
  2956.           commands: QUERY
  2957.                     PROMPT NORMAL
  2958.  
  2959.             <opts>: The <opts> arg is a binary word with any of the following bits
  2960.                     enabled.
  2961.  
  2962.                     TIP: Use
  2963.                               BITOR (<string1>,[<string2>],[<padchar>])
  2964.  
  2965.                          to set groups of bits or
  2966.  
  2967.                               BITSET (<string>, <bit>)
  2968.  
  2969.                          to set a single bit in <string>
  2970.  
  2971.                          SEE ALSO: ARexx manual and BITWISE OPERATOR section.
  2972.  
  2973.                     NAME          PURPOSE OF OPT                         BIT
  2974.                     ------------- -------------------------------------- ---
  2975.                     ALLCAPS INPUT ......................................  1
  2976.                     FILENAME      filter characters #?:\"*;= ...........  2
  2977.                     USEINBUFF     use existing INBUFFER ................  3
  2978.                     NOLEADSPACE   don't allow leading space in input ...  4
  2979.                     CAPWORDSTART  Capitalize the first letter of each
  2980.                                   word .................................  5
  2981.                     RESTWORDLOWER Convert all others to lowercase ......  6
  2982.                     NUMBERSONLY   Allow numeric input only .............  7
  2983.                     INPUTBOX      Draw input box (eg. with . at the
  2984.                                   end ..................................  8
  2985.                     ALLOWMCI      Allow the entry of MCI control
  2986.                                   characters ...........................  9
  2987.                     HANDLESPECIAL Don't allow ^_`{|}~@ ................. 10
  2988.                     XSLASHSTART   Forward slash (/) exits prompt and
  2989.                                   sets myz.InputFlags=1 ................ 11
  2990.                     XBKSPACESTART Enable BACKSPACE exit prompt ......... 12
  2991.                     NOOLMS        Don't allow OLMs to appear ........... 13
  2992.                     ALLOWCHAT     Allow other users to break into chat
  2993.                                   at prompt ............................ 14
  2994.                     NOSPACES      Don't allow spaces in input .......... 15
  2995.                     NOCURSORMOVE  Don't allow movement using arrow
  2996.                                   keys ................................. 16
  2997.                     NOSLASHES     Don't allow / key in input ........... 17
  2998.                     NOPATH        Don't allow : or / in input .......... 18
  2999.  
  3000. 26. Added companion ARexx CLEARQUERY command to clear QUERY bits set with
  3001.     SETQUERY.
  3002.  
  3003. 27. An Arexx command SETROOTNAME was added to BBS ports in v4.28 and the
  3004.     documentation for it was overlooked.
  3005.  
  3006.     SETROOTNAME sets a new global ROOT USERNAME. Note that this new ROOT
  3007.     USERNAME is NOT applied to config and only applies until Control is
  3008.     restarted.
  3009.  
  3010. 28. Added event progress display to Control Panel.  When an event is executing,
  3011.     its name and dynamic duration are displayed in the "FROM" and "STATUS"
  3012.     fields, respectively.
  3013.  
  3014. 29. Added duration of event to the event end time in sysdata:log/events so
  3015.     you can see how long your events are taking to complete.
  3016.  
  3017. 30. Added CNET:REXX directory and some example ARexx scripts.
  3018.  
  3019. 31. Added ARexx command RUNPORT which allows ARexx scripts to trigger Control
  3020.     to open/load a port.  RUNPORT requires a single argument in AmigaDOS
  3021.     ReadArgs format.
  3022.  
  3023.        eg. RUNPORT PORT=x
  3024.  
  3025.     where x is the number of the port to load.
  3026.  
  3027.     RUNPORT returns "OK" if the port load was successful or the port was
  3028.     already loaded.  Returns "FAIL" if the port could not be loaded.
  3029.  
  3030.     See cnet:rexx/runport.rexx for a complete example of usage.
  3031.  
  3032.     NOTE that the included ARexx script cnet:runport.rexx must exist if you
  3033.     want the immediate port loading feature of cron's new "RUN THIS EVENT NOW"
  3034.     feature to work.  This runport.rexx script can be altered but must always
  3035.     be capable of running the desired port using the command
  3036.     "rx cnet:rexx/runport.rexx <portnum>". This is the very command Cron uses
  3037.     to load the port to run an event immediately.  Control does NOT use this
  3038.     script for port loading.
  3039.  
  3040. 32. Companion CLOSEPORT Arexx command added to Control.  Args and usage are
  3041.     the same as those used for RUNPORT.
  3042.  
  3043.     See cnet:rexx/closeport.rexx for an example script.
  3044.  
  3045. 33. Added "RUN THIS EVENT NOW" capability to Cron to start/test an event
  3046.     immediately.  If the port is not loaded, it is loaded on the fly.
  3047.  
  3048. 34. Control's BOTLOGON Arexx command fixed.  To generate an automatic login,
  3049.     use this command.  The script cnet:rexx/botlogon.rexx is an example of
  3050.     this command.
  3051.  
  3052.     USAGE: BOTLOGON <PORT=x>
  3053.  
  3054.     where x is the port number for which to generate a login.
  3055.  
  3056.     NOTE that this command brings ** NEW POWER TO CNET AMIGA**. It is now
  3057.     possible to have a "Robot user" online at all times.  Using the BOTLOGON
  3058.     command and some clever CNETREXXp Arexx command work, you can completely
  3059.     automate BBS operations.
  3060.  
  3061.     Also note that the BOTLOGIN command generates a login as if you were to
  3062.     press the spacebar on the local console.  You can, via the
  3063.     ADDKEYS ARexx command, login as any user/password combination this way.
  3064.     
  3065.  
  3066. Changes/fixes for V4.30
  3067. -----------------------
  3068. 1.  Edit Finger (EF) command was corrupting user finger information.
  3069.  
  3070. 2.  When CONFIG was saved, IMP mailing-list info was invalidated.  Control had
  3071.     to be quit and restarted.
  3072.  
  3073. 3.  Change to BBSTEXT line 2288-2289.
  3074.  
  3075. 4.  BBSTEXT line 2301 changed to {}
  3076.  
  3077. 5.  "Include <user> [Y/n/q] prompt" caused port lockups if control was quit
  3078.     while a user was at this prompt, or if a user dropped carrier at this
  3079.     prompt.
  3080.  
  3081. 6.  New function PutQMulti() added to cnet.lib.  This function is currently
  3082.     used internally for the mail system.  It has the potential of being the
  3083.     backbone of an elaborate/powerful "hotkey" processor.
  3084.  
  3085.     See the Library reference cnet.lib.doc in the sdk/lib directory for more
  3086.     information on PutQMulti.
  3087.  
  3088. 7.  cnSMTPd was reporting "Error after WS()" instead of "timeout" when a remote
  3089.     system was either lagged, excessive non-communication time or had closed
  3090.     connection.
  3091.  
  3092. 8.  Subboards with minimum free bytes before upload set to 0 were not allowing
  3093.     any uploads.  Was a problem since CNet/3 days.  New code added so that if
  3094.     you set subboard minimum free bytes to 0, CNet will ignore check free-space
  3095.     before and during an upload/batch-session.
  3096.  
  3097. 9.  MailSend to account ranges (eg. "MS 1-") has received a 1000% improvement in
  3098.     lookup speed to reduce user-wait times.
  3099.  
  3100. 10. Mailing-List reply-to addresses that had a trailing space on the end were
  3101.     causing problems.  Trailing spaces are now removed.
  3102.  
  3103. 11. Config and useredit were not opening their screens in proper PAL monitor
  3104.     mode on European/overseas systems.
  3105.  
  3106. 12. Config/Modems/Device name was too short to accept "squirrelserial.device".
  3107.     max device name length increased by 1 character to allow this.  To
  3108.     avoid shifting of getuser values etc, struct SerPort4->init1 was shortened
  3109.     from 50 characters max to 49 characters max.
  3110.  
  3111. 13. Added mins/hours display to "Idle" display of the WHO command.
  3112.     Changes to BBSTEXT lines 907 and 1125-1127.
  3113.  
  3114. 14. NNTPGet received some much needed attention to increase news import speed.
  3115.  
  3116. 15. Enforcer hit was generated when initiating upload to direct exchange subboard.
  3117.  
  3118. 16. Direct exchange subboards were not allowing uploads if minimum free space
  3119.     was set larger than 0.
  3120.  
  3121. 17. Dropping carrier at "Hit RETURN to enter the system:" login prompt caused
  3122.     a port lockup.
  3123.  
  3124. 18. FULL maint users can now edit mail they did not write when using mail verify.
  3125.  
  3126. 19. Idle time display in WHO was not showing LOGON, TERM nor NEWUSER when a
  3127.     port existed in one of those states.
  3128.  
  3129. 20. TimeIdle variable (used in port idle time calculations) redfined as a ULONG
  3130.     to allow for display of longer inactive periods.
  3131.  
  3132. 21. Fixed log delete bug where a failed delete resulted in no logs being
  3133.     readable thereafter.
  3134.  
  3135. 22. Internet "FINGER" integrated into CNet online finger.  If you have a TCP/IP
  3136.     stack running, users may use "FINGER user@internet_host" to get information
  3137.     about a user on remote hosts.  "FINGER <local_user>" still works too.
  3138.  
  3139. 23. CNetIRC edit server was allowing ridiculous lengths to be used for some
  3140.     of the string settings.
  3141.  
  3142. 24. CNetIRC had the potential to lockup if a user dropped carrier during
  3143.     a session.
  3144.  
  3145. 25. CNetIRC could lockup if your TCP/IP stack connection was lost.
  3146.  
  3147. 26. Note to Miami users: Be sure that "Down when offline" is enabled in
  3148.     Miami's TCP/IP section.
  3149.  
  3150. 27. Users CNetIRC exit message was not being displayed when they quit CNetIRC.
  3151.  
  3152. 28. CNetIRC clear screen (eg. /CLS, /C, /CLEAR) command was broken.
  3153.  
  3154. 29. Added the following log to CONFIG/LOGS:
  3155.  
  3156.         LOG NAME: SOCKET
  3157.           LOG ID: 413
  3158.          PURPOSE: For logging of TCP/IP socket connects, disconnects and
  3159.                   general socket I/O information.
  3160.  
  3161.     (note this log is currently only used by the Finger command.  It will soon
  3162.      be expanded to encompass ALL CNet internet clients)
  3163.  
  3164. 30. CNetIRC was, at times, not notifying the remote server when a user QUIT
  3165.     the server.  This resulted in a "Nickname <nick> already in use" message
  3166.     when the same channel was joined during the same IRC session.
  3167.  
  3168. 31. cnSMTPd was producing software failures if iconified or menufied while a
  3169.     session was active.
  3170.  
  3171. 32. cnSMTPd was not updating a socket connection's list entry when a remote client
  3172.     timed out (more than 1 minute of inactivity) or lost connection.  This had
  3173.     the appearance of a connection being active/present when it really was not
  3174.     connected anymore.
  3175.  
  3176.  
  3177. Changes/fixes for V4.29b (ALPHA)
  3178. --------------------------------
  3179. 1.  Bug in cnet.lib WriteASubboard() function caused enforcer hits and lockup.
  3180.     Affected "EL" SAVE and other modules/executables that used this function.
  3181.  
  3182. 2.  Auto-forward mail-aliases (+) are now supported by iuumail and mail-task
  3183.     internet mail import.
  3184.  
  3185. 3.  Spooled internet mail should now send ok once connected.  Be sure to set
  3186.     smtp mail timeout in Config/Defaults.
  3187.  
  3188. 4.  bmaint had a bug in which short descriptions were sometimes not moved
  3189.     with files when the MOve command was used.
  3190.  
  3191. 5.  Some Control menus were not being ghosted when locked and some were
  3192.     unneccessarily ghosted.
  3193.  
  3194. 6.  AMaint was printing garbage text when started.
  3195.  
  3196.  
  3197. Changes/fixes for V4.29a (ALPHA only)
  3198. ------------------------
  3199. 1.  MIME support added to incoming EMAIL.  Using MIMEEd, you can set up your
  3200.     own MIME types and associated decoders.
  3201.     
  3202.     For the decode command, there are some things to note:
  3203.     
  3204.         use %f for the temporary name that CNet is using as the file to be
  3205.         decoded.
  3206.         
  3207.         use %t for the final filename.
  3208.         
  3209.            eg. base64 decode from %f to %t
  3210.  
  3211. 2.  Changes to disallow uploading of files with invalid characters in filenames.
  3212.     Changes to lines 402 and 392 of BBSTEXT.
  3213.  
  3214. 3.  CNet had the potential to allow upload of files named . or .. previously.
  3215.     No longer.
  3216.  
  3217. 4.  cnSMTPd was corrupting mail on some systems running OS V40.
  3218.  
  3219. 5.  Added byte progress display to cnsmtpd lines and logging of final mail
  3220.     size to cnsmtpd log.
  3221.  
  3222. 6.  EL VDE bug fixed.
  3223.  
  3224. 7.  W<x> was falsely allowing "long description" to be edited when it really
  3225.     served no purpose.  The proper and only way to edit/add a long description
  3226.     after the initial "enter long description" prompt has been bypassed is to
  3227.     "ED" the item and edit response 0.
  3228.  
  3229. 8.  Config was not saving IMP config unless a previous cnet:configs/IMP file
  3230.     existed.
  3231.  
  3232. 9.  repair_sub made more verbose by printing subboard names.
  3233.  
  3234. 10. EL "Network" setting were cycling as "none, usenet, usenet, fido1,
  3235.     fido2, etc."  Fixed to cycle as "none, usenet, mailing-list, fido1, fido2, etc."
  3236.     Make sure BBSTEXT line 1666 says "MailingList" or similar.
  3237.  
  3238. 11. Of interest to 3rd party door/utility coders, there are two new cnet link
  3239.     libraries in sdk/lib; cnet.lib and cnetc_door.lib. These libraries contain
  3240.     many of the functions used in CNet executables which are now available for
  3241.     your use.  Library reference in amigaguide format will be released soon.
  3242.  
  3243. 12. CNet doors and internal modules recompiled to take advantage of new
  3244.     cnet.lib and cnetc_door.lib code.  This reduced the size of many
  3245.     CNet doors and executables.
  3246.  
  3247. 13. Type 2 joinlink sessions were not performing initial handshaking properly.
  3248.  
  3249. 14. QWK import bug fixed.  Added BBSTEXT lines 1757-1758.
  3250.  
  3251. 15. BBSTEXT line 215 changed.
  3252.  
  3253. 16. BBSTEXT line 802 changed.
  3254.  
  3255. 17. Config was sometimes freezing up after pressing SAVE.
  3256.  
  3257. 18. GetRFCDate() sign for GMT offset was backwards.
  3258.  
  3259. 19. Mail-task was not creating mail:mimet (mime temp directory) if it did not
  3260.     exist.
  3261.  
  3262. 20. nntpget was showing posts, responses and dupes incorrectly (order not correct).
  3263.  
  3264. 21. cnSMTPd was not handling empty envelope sender properly.
  3265.  
  3266. 22. Join was getting an enforcer hit when the last noise in the list was used.
  3267.  
  3268. 23. cnSMTPd was closing remote connection after receiving a single item rather
  3269.     than waiting for possible multiple items and/or remote disconnect.
  3270.  
  3271. 24. MIME support routines from mail-task added to iuumail.
  3272.  
  3273. 25. MIMEEd "News save method" was not saving properly.  Please note that, at
  3274.     this time, this button has no function.  MIME detection/processing is not
  3275.     yet added for usenet news imports.
  3276.  
  3277.  
  3278. Changes/fixes for v4.28e
  3279. ------------------------
  3280. 1.  "Config/Options/Skip handle prompt with CID match" and
  3281.     "Config/Options/Answer only with CID match" were not saving properly.
  3282.  
  3283. 2.  MIME support added to MAIL.  News and posts MIME support to be added soon.
  3284.  
  3285. 3.  Config/IMP changes are now effected dynamically.  that is, your changes are
  3286.     immediately applied to Control's MainPort.
  3287.  
  3288. 4.  Added MIMEEd (aka MIME-Edit) GUI for adding/deleting/editing MIME types.
  3289.  
  3290.     Explanation of MIMEEd buttons and MIME types:
  3291.  
  3292.        ....not yet complete...
  3293.  
  3294.  
  3295.  
  3296. Changes/fixes for v4.28d
  3297. ------------------------
  3298. 1.  SMTP daemon (cnsmtpd) now included with CNet.  This daemon is one that
  3299.     should be run AFTER both your TCP/IP stack and Control are running.  It
  3300.     will accept a maximum of 32 simultaneous SMTP connections. It is also an
  3301.     AmigaDOS executable that should be run in any AmigaDOS Shell.
  3302.  
  3303.          eg.  run cnet:cnsmtpd
  3304.  
  3305. 2.  SMTPd section added to Config.  There are currently two lists on this page:
  3306.  
  3307.  
  3308.          LOCAL HOSTNAME/ALIASES
  3309.          
  3310.            This is a list of hostnames/aliases that your system is known as.
  3311.            For example, your system may have multiple domain names.  Enter
  3312.            all names/aliases that your system is known as in this list.
  3313.          
  3314.             eg. metalshoppe.dyn.ml.org
  3315.                 metalshoppe.com
  3316.               
  3317.                 (note that the above examples are not really existant. They are
  3318.                  for purposes of illustration only)
  3319.  
  3320.            NOTE: An entry for "LOCALHOST" must exist so be sure to add this alias.
  3321.  
  3322.  
  3323.          SPAM HOSTS/IPs
  3324.          
  3325.            This is a list of sites, hostnames and IPs that should be ignored.
  3326.            If a system in this list attempts to hit your system via SMTP
  3327.            it will be ignored.
  3328.  
  3329.             eg. make.money.fast.com
  3330.                 spam.com
  3331.  
  3332.                 (note that the above examples are not really existant. They are
  3333.                  for purposes of illustration only)
  3334.  
  3335. 3.  CNetIRC EDIT SERVER fixed.  It was previously possible to specify a server
  3336.     number higher than that of the number of servers configured.
  3337.  
  3338. 4.  TimeZone setting added to Config/defaults.  Please set this attribute
  3339.     to the three letter abbreviation of your timezone (eg. CST, EST, etc.)
  3340.  
  3341. 5.  Control received a new menuitem titled "cnsmtpd" under the menu "Internet"
  3342.     When selected, this menuitem will run the cnsmtpd task.
  3343.  
  3344.     NOTE:  This menuitem requires that cnsmtpd be located in your CNET: directory.
  3345.  
  3346. 6.  Added S=RUNSMTPD arg to Control.  To have Control run cnSMTPd when it boots
  3347.     use the S arg as follows:
  3348.  
  3349.        run <>NIL: Control s
  3350.  
  3351. 7.  Host Filter editing added to cnSMTPd.  "SPAM" hosts can be added while
  3352.     sessions are in progress.  Changes are saved to disk when the Host Filter
  3353.     window of cnSMTPd is closed.  cnSMTPd doesn't apply the changes to sessions
  3354.     until they are saved to disk.
  3355.  
  3356. 8.  CNetIRC now allows local "Everywhere" commands to be used.
  3357.  
  3358.         eg.  /WHO
  3359.  
  3360. 9.  CNetIRC status bar fixed in many key locations where it was not refreshing.
  3361.  
  3362. 10. CNetIRC now displays OLMs when received by the user's port rather than after
  3363.     quitting IRC.
  3364.  
  3365. 11. Amaint enforcer hit removed.
  3366.  
  3367.  
  3368. Changes/fixes for v4.28c
  3369. ------------------------
  3370. 1.  Bug fixed where BBSList produced garbage characters in last entry and
  3371.     caused enforcer hits.
  3372.  
  3373. 2.  Change to line 336 of !bbstext_stock.
  3374.  
  3375. 3.  Fixed unlock which was ot flushing it's output before printing input
  3376.     prompts; making unlock appear to be locked up.
  3377.  
  3378. 4.  Broken "AREA: <area name>" logging in BAD_MSGS reinstated in Toss import
  3379.     routines.
  3380.  
  3381. 5.  Toss altered to handle non-standard/munged packets a bit better.
  3382.  
  3383. 6.  BGUI Config completed.  wizard.library is no longer required by CNet Amiga.
  3384.  
  3385. 7.  Fix for bug that allows user to choose who to send mail to if "feedback @login"
  3386.     is allowed and "feedback goes to mail #1" is enabled.
  3387.  
  3388. 8.  Multi-Mail (MM) reinstated.  Changes to bbstext lines 2127-2130 and 2301.
  3389.  
  3390.     If mail is sent to a RANGE of users using, for example, the command "MS 1-",
  3391.     then the user will be prompted YES/NO for each and every user in the range
  3392.     specified.  However, if "MS 1-!" is used, then a global "YES" is assumed.
  3393.  
  3394. 9.  Also, range mail has been changed and the Multi-Mail flag is applied to any
  3395.     mail sent using a range of account numbers or users.  If a user attempts to send
  3396.     to more than 1 user per email and the MultiMail proviledge flag is not enabled,
  3397.     MailSend is aborted.
  3398.  
  3399. 10. It is now possible to mail users belonging to a specific access group or
  3400.     range of access groups.  To specify an access group or range of access
  3401.     groups rather that a user account, the arithmetic plus (+) character is
  3402.     added before the access group number.
  3403.  
  3404.        eg. MS +31
  3405.  
  3406.        The above example would mail all users in access group 31, interactively
  3407.        asking the sender if he/she wishes to include each user.
  3408.  
  3409.        eg. MS +31!
  3410.  
  3411.        This example is the same as the above example except that there is no
  3412.        interactive query; ALL users belonging to access group 31 are included.
  3413.  
  3414.     other examples:
  3415.  
  3416.        MS +1-4
  3417.        mail users belonging to access groups 1 through 4.
  3418.  
  3419.        MS +1-2,6
  3420.        mail users belonging to access groups 1,2 and 6.
  3421.  
  3422.        MS +1-2,6;Heavy Metal
  3423.        mail users belonging to access groups 1,2 and 6 and also the user with
  3424.        the handle "Heavy Metal"
  3425.  
  3426.        MS +1-2,6;Electropig;rakey@cnetbbs.net
  3427.        mail users belonging to access groups 1, 2, 6, the user with the handle
  3428.        "Electropig" and the internet account belonging to "rakey@cnetbbs.net"
  3429.  
  3430.     Changes to BBSTEXT line 1522-1523.
  3431.  
  3432. 11. IMP section of config is now more intelligent.
  3433.  
  3434.     If Control is running, instead of requiring that you enter the exact
  3435.     GO KEYWORD of the subboard to be associated with the mailing list gate,
  3436.     all configured mailing list subboards are listed in a cycle gadget for you
  3437.     to choose from.  This cycle gadget is updated dynamically so, if you find
  3438.     that you haven't created the mailing list subboard yet: create it and then
  3439.     click on ANY entry in the IMP list of Config and the cycle gadget will be
  3440.     updated to contain the newly added mailing list subboard go keyword.
  3441.  
  3442.     If Control is not running, you MUST enter the full text GO KEYWORD of the
  3443.     mailing list subboard, as before.  For absolute error-free GO KEY choice,
  3444.     we recommend that you have Control running while setting up your IMP
  3445.     mailing list gate(s).
  3446.  
  3447.     NOTE: After changing IMP config, you must (still) quit and reload Control
  3448.           for your IMP changes to take effect.  this limitation WILL be removed
  3449.           soon.
  3450.  
  3451. 12. New sysop GUI "UserEdit" added to ease local console editing of users!
  3452.     If a port is selected, and the UserEd button of Control is clicked,
  3453.     the selected port user is auto-selected in UserEd's list.  The UserEd
  3454.     GUI is similar to the online "EL" VDE (Visual Data Editor).
  3455.     
  3456.     UserEd buttons/Gadgets:
  3457.  
  3458.        USERS:
  3459.        A list of existing BBS users.  Select a username to view
  3460.        and that user's account attributes are displayed in the
  3461.        initially locked gadgets.  Note that if a user is in LOCK/EDIT
  3462.        mode, clicking on any user in this list will cause your changes
  3463.        to be abandoned.
  3464.  
  3465.        LOCK/EDIT:
  3466.        Use this button to LOCK the currently selected user and begin
  3467.        making changes to account attributes.
  3468.        
  3469.        UNLOCK/SAVE:
  3470.        Use this button to commit/save any changes made to an account
  3471.        since the LOCK/EDIT button was pressed.
  3472.  
  3473.        REFRESH:
  3474.        Refreshes the UserEd user list and the current user.  Note that
  3475.        if you use refresh while a user is locked/edited, you will lose
  3476.        any changes made to that user.
  3477.  
  3478.        All other buttons, tabs and other gadgets are exactly like their
  3479.        online "EL" VDE version in name and attribute.  See your CNet manual
  3480.        if you need information on any of these attributes and their
  3481.        purpose.
  3482.  
  3483. 13. (coders) Mailboxes now require locking a semaphore before accessing
  3484.     _mhead/_mtext.  The semaphores associated with mailboxes range from
  3485.     0 to myp->Nums[0] and are located in a dynamic array of SignalSemaphores
  3486.     in myp->MPE->MailSem[x] where x=Account_Number-1.
  3487.  
  3488.     Try not to keep these semaphores locked for too long as users logging
  3489.     on may need to access their mailboxes and if you have an outstanding
  3490.     lock on their mailbox.  eg. lock mailbox, read/write/copy data, unlock
  3491.     mailbox.
  3492.  
  3493.     See control.h and the MainPortExtension structure for more info.  
  3494.  
  3495. 14. New function GetRFCDate() added to cnet.library for support of
  3496.     internet RFC format dates.  Note that CNet uses locale.library to get
  3497.     GMT offset information.  You should set your system timezone using the LOCALE
  3498.     preferences editor found in sys:prefs.
  3499.  
  3500.     example for coders:
  3501.  
  3502.        void main(void)
  3503.           {
  3504.           char datebuffer[40];
  3505.           struct Library *CNetBase;
  3506.  
  3507.           if(CNetBase = OpenLibrary("cnet.library", 4L))
  3508.              {
  3509.              GetRFCDate(datebuffer);
  3510.              Printf("RFC date is: %s\n", datebuffer);
  3511.              CloseLibrary(CNetBase);
  3512.              }
  3513.           return;
  3514.           }
  3515.  
  3516. 15. #?-task buffer refresh now more efficient when de-menufiying and de-iconifying.
  3517.  
  3518. 16. Setting was not being saved for "Command" string gadget of Config/IMP when
  3519.     process-type "AmigaDOS/RX script" is used.
  3520.  
  3521.  
  3522. Changes/fixes for v4.28b
  3523. ------------------------
  3524. 1.  All task GUIs converted to BGUI layout.  One difference from the
  3525.     StormWizard task GUIs is that to save the mail-task window position,
  3526.     you must use the menu "MAIL-TASK" menu and select SNAPSHOT WINDOW to save
  3527.     window size/position.  Control's Mail, Files, Yanks and News popup menu
  3528.     buttons also received a new menuitem, "Snapshot Position" for extended
  3529.     control.
  3530.  
  3531. 2.  Fixed IMP Mailing List Gate bug where only replies were being sent to the
  3532.     mailing list address; posts were posted using the regular subboard posting
  3533.     mechanism.
  3534.  
  3535. 3.  Fixed global FTN post/reply bug which caused posts/replies to be sent to
  3536.     the wrong network.
  3537.  
  3538. 4.  All CNet GUIs now have public screen support.  If you run control using
  3539.     the PUBSCREENNAME=<screen name> arg, all CNet tasks (eg. mail-task,
  3540.     file-task, etc.) will open their windows on the public screen specified
  3541.     when spawned by Control - whether at startup or when you use the popup
  3542.     menu task buttons.  Each task also has it's own PUBSCREENNAME argument
  3543.     that can be added if you choose to run the task(s) via script or by hand.
  3544.  
  3545.     PLEASE NOTE that Control does not (yet) open the public screen for you. You
  3546.     must use a utility such as ScreenWizard, ScreenManager, Pubby or some other
  3547.     public screen utility to initially open the public screen that you want
  3548.     CNet to use.
  3549.  
  3550. Note: The StormWizard layout library (wizard.library) is still used for CNet's
  3551.       "Config" program which will be re-written to use the faster BGUI layout
  3552.       engine in a later release.  The Config GUI re-code will take approx. 2
  3553.       days to complete.  Therefore, some previously reported bugs must be
  3554.       fixed in the meantime.  Please have patience with the current
  3555.       StormWizard Config program.  It will be much faster and less buggy once
  3556.       converted to BGUI. Once Config is re-written, the buggy StormWizard - as
  3557.       far as CNet development goes - will be scrapped.
  3558.  
  3559.  
  3560. Changes/fixes for v4.28a
  3561. ------------------------
  3562. 1.  Fixed "**NULL POINTER**" that was appearing in mail subject of some mails.
  3563.  
  3564. 2.  Fix for the amaint bug that results in the user being put in a different
  3565.     subboard after completion.
  3566.  
  3567. 3.  Alternate Control BGUI created using the BGUI.library BOOPSI GUI layout
  3568.     library. BGUI may end up taking over since StormWizard could not function
  3569.     propely.  You do not have to rename the BGUIControl as Control but you
  3570.     may if you like.  BGUIControl, of course, accepts the same CLI args
  3571.     that the StormWizard Control did/does.
  3572.  
  3573. 4.  For the BGUI Control GUI, you can now define which system stats are
  3574.     displayed.  The default of "Sysop Mail, Mail1, Calls Logged, Total Calls,
  3575.     Current NUsers, Users, Posts Now, Resps Now" can be changed.
  3576.     
  3577.     To change the items displayed, edit BBSTEXT line 2335.  Each %X represents
  3578.     one item on the Control panel stats display. eg. %g represents "Sysop Mail".
  3579.     Also, it is critical to note that the order that you put these in is not
  3580.     important but there is an order in the layout process.  Each %X is laid out
  3581.     as follows:
  3582.  
  3583.                     1  3  5  7   9   11
  3584.                     2  4  6  8  10   12
  3585.  
  3586.     So, "%g%i%q%r%n%s%j%k" is laid out as so:
  3587.  
  3588.       Sysop Mail: xxx  Calls Logged: xxx  Current NUsers: xxx  Posts Now: xxx
  3589.            Mail1: xxx   Total Calls: xxx           Users: xxx  Resps Now: xxx
  3590.  
  3591.     Example 2: "%1%i%q%r%n%s%j%k" is laid out as so:
  3592.  
  3593.      Total Sysop: xxx  Calls Logged: xxx  Current NUsers: xxx  Posts Now: xxx
  3594.            Mail1: xxx   Total Calls: xxx           Users: xxx  Resps Now: xxx
  3595.  
  3596.     NOTE that the difference in example 2 is the change of the first sequence
  3597.     from %g to %1 which changed "Sysop Mail:" to "Total Sysop:"
  3598.  
  3599.     Here is the list of available variable placeholders for Control's status
  3600.     "bevel box" area:
  3601.  
  3602.        %1   =   Total FBack            %2   =   Total Mail
  3603.        %3   =   Total Mail1            %4   =   Total Posts
  3604.        %5   =   Total Responses        %6   =   Total ReadText
  3605.        %7   =   Total Doors used       %8   =   Total Newusers & Guest
  3606.        %9   =   Total Upload Files     %a   =   Total Upload K
  3607.        %b   =   Total Download files   %c   =   Total download K
  3608.        %d   =   Total Minutes USE      %e   =   Total Minutes IDLE
  3609.        %f   =   Total Charges          %g   =   Current FBack
  3610.        %h   =   Current Mail           %i   =   Current Mail1
  3611.        %j   =   Current Posts          %k   =   Current Responses
  3612.        %l   =   Current ReadText       %m   =   Current Doors used
  3613.        %n   =   Current Newusers       %o   =   Current files online
  3614.        %p   =   Current files K online %q   =   Calls logged
  3615.        %r   =   Total Calls            %s   =   Total users
  3616.  
  3617.     NOTE that after changing the Stats lines in bbstext, you must use the
  3618.     Control RELOAD TEXT/MENU menuitem and then close (iconify) and reopen
  3619.     the BGUIControl window to see your changes.
  3620.  
  3621.  
  3622. Changes/fixes for v4.28
  3623. -----------------------
  3624. 1.  Config listview problems fixed in Logs, Modems, etc where double-clicking
  3625.     on a list item caused an alert.
  3626.  
  3627. 2.  Config was now allows the addition of a "modem" with no device.name to
  3628.     be used as a local port.
  3629.  
  3630. 3.  One can no longer run Config if the Control panel is locked.  Remember, after
  3631.     you select "Lock and Write Setup" in Control's menu, you must use the command
  3632.     CNET:UNLOCK to unlock the Control panel.
  3633.  
  3634. 4.  One can no longer run CRON if the Control panel is locked.  Remember, after
  3635.     you select "Lock and Write Setup" in Control's menu, you must use the command
  3636.     CNET:UNLOCK to unlock the Control panel.
  3637.  
  3638. 5.  Fixed File-Task Appicon which was not being properly saved in
  3639.     Config/Display/File-Task Appicon.
  3640.  
  3641. 6.  InterceptMailProcess (IMP) added to CNet.  IMP is destined to be one of the
  3642.     most powerful concepts of the CNet mail sub-system. Using the Config/IMP
  3643.     section, you can now have CNet look for messages addressed TO or FROM users
  3644.     and have that mail processed one of 2 CURRENT ways (may be expanded in the
  3645.     future):
  3646.  
  3647.            1) by a DOS script specified in the IMP section of config.
  3648.            2) by redirecting to a CNet subboard as a mailing list gate
  3649.               also configured in Config/IMP.
  3650.  
  3651.     Config's IMP attributes will change depending on the type of processing
  3652.     is to be done for the TO or FROM address given.
  3653.  
  3654.     The "Apparent Recipient" is any string of alpha-numberic characters
  3655.     currently matching one of the following: (full AmigaDOS pattern matching is
  3656.     supported here).
  3657.  
  3658.            1) The "TO:" of an RFC-822 compliant Internet E-Mail.
  3659.            2) a FTN (FidoNet) email's TO address.
  3660.  
  3661.     The "Apparent Sender" is any string of characters (with full AmigaDOS
  3662.     pattern matching) matched in any combination of the following fields/formats:
  3663.  
  3664.            1) The "Reply-To:" or "From:" of an RFC-822 compliant Internet E-Mail.
  3665.            2) a FTN (FidoNet) email's FROM address.
  3666.  
  3667.     Toss, mail-task and iuumail have been altered to support the IMP system.
  3668.     As with any new concept or feature, there may be minor bugs. Please
  3669.     report any bugs ASAP.
  3670.  
  3671.     IMPORTANT IMP EXAMPLE:
  3672.     
  3673.            The Apparent Sender/Recipient field should COMPLETELY match the
  3674.            attribute it is being compared against.  Thus, if one wanted
  3675.            to gate the cnet mailing-list to a subboard with a "GO keyword"
  3676.            of mailinglist_cnet, look at the "Reply-To:" header of the email
  3677.            and find the following:
  3678.  
  3679.                  Reply-To: cnet@megalith.dade.fl.us (MailingList 'cnet')
  3680.  
  3681.            To successfully gate all mail with a Reply-To like this, you would have
  3682.            to use one of the following examples as the "Name/Pattern" of your IMP
  3683.            filter:
  3684.  
  3685.                  cnet@megalith.dade.fl.us (MailingList 'cnet')
  3686.                  #?cnet@megalith.dade.fl.us#?
  3687.                  #?MailingList 'cnet'#?
  3688.  
  3689.            or any variation thereof. Note that the first possible name/pattern
  3690.            is not a "wildcard" pattern and is a COMPLETE match for the whole
  3691.            Reply-To.  However, the other name/pattern examples all contain the
  3692.            AmigaDOS wildcard pattern (#?).  WildStar (*) support is possible
  3693.            if you have enabled Wildstar via a Commodities exchange program (AKA
  3694.            commodity).
  3695.  
  3696. 6.  Mailing List support (gating in/out) added to CNet subboards. To make a CNet
  3697.     subboard a mailing list gate:
  3698.  
  3699.            1) use the EL command and set the subboard's NETWORK setting to
  3700.               "Mailing List".  
  3701.            2) Set the "Process Method" in Config/IMP to "Mailing List Gate".
  3702.            3) Set the Detect Type to "Apparent Sender" and be sure that the
  3703.               Name/Pattern matches or partially matches the "Reply-To"
  3704.               address of the mailing list.
  3705.            4) Set the "List Address" to the e-mail address of the mailing list.
  3706.  
  3707. 7.  Change to BBSTEXT lines 1666 and 1867-1870 for mailing list support.
  3708.  
  3709. 8.  Added help file systext:help/mailinglist.
  3710.  
  3711. 9   Final fix of the "missing short description" bug when files are moved.
  3712.  
  3713. 10. Fixed problem that some sysops were experiencing which caused crashes when using
  3714.     shortcut keys (eg. Right Amiga '-').
  3715.  
  3716. 11. Of interest to door coders, more functions appear in cnet.library:
  3717.  
  3718.        ------------------------
  3719.        Name     : NumFromUnique
  3720.        Prototype: short NumFromUnique(char *gokeyword);
  3721.        Purpose  : Allows one to find the physical subboard number of the
  3722.                   subboard having a go keyword of <gokeyword>.  The physical
  3723.                   subboard number is the one used to access the given subboard
  3724.                   in the global subboard list.
  3725.        Returns  : Physical subboard number pertaining to the given go keyword or
  3726.                   -1 if not found.
  3727.        Bugs     : None
  3728.  
  3729.        EXAMPLE:
  3730.  
  3731.                short PhysNum;
  3732.  
  3733.                PhysNum=NumFromUnique("FILES");
  3734.                if(PhysNum > -1)
  3735.                   {
  3736.                   sprintf(z->ABuffer, "GO keyword FILES pertains to subboard %s\n",
  3737.                                       myp->Subboard[PhysNum].Title);
  3738.                   PutA();
  3739.                   }
  3740.                else
  3741.                   PutText("No subboard found with a go keyword of FILES\n");
  3742.  
  3743.  
  3744.        ------------------------
  3745.        Name     : FindOrdinal
  3746.        Prototype: struct Node *FindOrdinal(struct List *list, short n);
  3747.        Purpose  : Finds the list node pertaining to a given node number.
  3748.        Returns  : Pointer to the Exec node pertaining to <n> or NULL (0L)
  3749.                   if not found.
  3750.        Bugs     : None
  3751.  
  3752.        EXAMPLE:
  3753.  
  3754.                struct Node *nodeptr;
  3755.                struct Node addnode;
  3756.                char nodename[10]; // 9 chars max nodename + 1 char for NULL ('\0') byte
  3757.                struct List mylist;
  3758.  
  3759.                // list setup
  3760.                NewList(&mylist);
  3761.                strcpy(nodename, "dummynode");
  3762.                addnode.ln_Name = &nodename[0];
  3763.                AddTail(&mylist, &addnode); // could have also used AddHead()..
  3764.  
  3765.                // FindOrdinal usage..
  3766.                nodeptr=FindOrdinal(&mylist, 0);
  3767.                if(nodeptr != &addnode)
  3768.                   Printf("Error finding node %d\n", n);
  3769.                else
  3770.                   Printf("Node %d found; name: %s\n", n, nodeptr->ln_Name);
  3771.  
  3772.  
  3773.        ------------------------
  3774.        Name     : InStr
  3775.        Prototype: short InStr( char *string, char *isin );
  3776.        Purpose  : case insensitive check to see if <isin> is a substring of <string>
  3777.        Returns  : 0 if <isin> is NOT a substring of <string>, starting position
  3778.                   of match otherwise.
  3779.        Bugs     : None
  3780.  
  3781.        EXAMPLES:
  3782.  
  3783.                if((InStr("Reply-To: rakey@cnetbbs.net", "reply-to: ") == 1)
  3784.                   {
  3785.                   printf("This is a valid Reply-To line.\n");
  3786.                   }
  3787.  
  3788.                if((InStr("Relay-To: rakey@cnetbbs.net", "reply-to: ") == 0)
  3789.                   {
  3790.                   printf("This is not a valid Reply-To line.\n");
  3791.                   }
  3792.  
  3793.  
  3794.        ------------------------
  3795.        Name     : AllDigits
  3796.        Prototype: short AllDigits( char *string);
  3797.        Purpose  : check to see if <string> contains only ASCII digits
  3798.        Returns  : TRUE (1) if string is all digits, FALSE (0) otherwise.
  3799.        Bugs     : None
  3800.  
  3801.        EXAMPLES:
  3802.  
  3803.                if(AllDigits("12345678901234567890"))
  3804.                   printf("All digits!\n");
  3805.                if(AllDigits("1a3b5c7d9e1f3g5h7i9j"))
  3806.                   printf("Oops! Some non-numeric characters present!\n");
  3807.  
  3808.  
  3809.        ------------------------
  3810.        Name     : CopyFilterText
  3811.        Prototype: CopyFilterText(char *dest, char *source);
  3812.        Purpose  : Copies source to destination, removing MCI, carriage returns
  3813.                   linefeeds and converting TABS to 3 spaces in the process.
  3814.                   This is the function used to prepare text to be displayed in CNet
  3815.                   GUI buffers.
  3816.        Returns  : None
  3817.        Bugs     : None
  3818.  
  3819.        EXAMPLES:
  3820.  
  3821.                   // print a known BBSTEXT line that has MCI in it
  3822.                   PutText(bm[44]);
  3823.  
  3824.                   // now Copy/Filter the same line to z->ABuffer and print it
  3825.                   // using PutA()
  3826.                   // the second printed version will be stripped of MCI and the
  3827.                   // control characters mentioned previously.
  3828.                   CopyFilterText(z->ABuffer, bm[44]);
  3829.                   PutA();
  3830.  
  3831.  
  3832.  
  3833.  
  3834. Changes/fixes for v4.27b
  3835. ------------------------
  3836. 1.  Re-instated BBSTEXT line 1124 to allow MCI to be executed at the END of
  3837.     the new user process.
  3838.  
  3839. 2.  All background task GUI (mail-task, file-task, etc.) buffers now
  3840.     scroll so that the last action performed is visible in the scrollback
  3841.     display at all times.
  3842.  
  3843. 3.  Added Yank-task GUI, very much similar to mail-task, news-task and
  3844.     file-task GUIs.
  3845.  
  3846. 4.  Added window menus for clipboard support to mail-task, file-task, yank-task
  3847.     and news-task GUIs to allow buffer contents to be copied to clipboard unit 0.
  3848.  
  3849. 5.  Added the ability to save all "task" GUI buffers to a file.  This is also
  3850.     in a window menu as "Save buffer as.."
  3851.  
  3852. 6.  Added clipboard support to CNet's Visual editor (VisEd), finally!  Each port
  3853.     uses one of 100 separate units of the Amiga clipboard.device.
  3854.  
  3855.        eg. BBS port 0 uses clipboard.device unit 1
  3856.            BBS port 1 uses clipboard.device unit 2
  3857.  
  3858.     this is intenational so that online users do not disturb the contents
  3859.     of unit 0 which is used by many other Amiga application programs.
  3860.  
  3861.     Some editors, such as CygnusEd allow you to select a clipboard unit to paste
  3862.     from.  The sysop may, for example, on port 3 copy a region of text in
  3863.     his VisualEditor to the clipboard (using the VisEd REGION MARK and then REGION
  3864.     COPY commands) and then, in CygnusEd, select clipboard unit 4 and paste
  3865.     from that unit, to insert his VisEd text into CygnusEd.
  3866.  
  3867. 7.  Config/tasks section added for configuration of mail, news. file and yank
  3868.     task.
  3869.  
  3870. 8.  Added max buffer sizes for all tasks in Config/tasks.  These settings are
  3871.     the maximum number of LINES to be buffered in the "status listview" at the
  3872.     bottom of each #?-task GUI.  Anything past the number of lines specified
  3873.     will result in a first-in/first-out replacement of buffer lines.  A setting of
  3874.     0 means that you do not want the task buffers to be trimmed.
  3875.  
  3876.  
  3877. Changes/fixes for v4.27a
  3878. ------------------------
  3879. 1.  The EnterPassword() function now supports case-sensitive password entry.
  3880.     Use the following function or a snippet of this code in your doors, to support
  3881.     case sensitivity in passwords:
  3882.  
  3883.        void MyGetPassword( void )
  3884.           {
  3885.           // retain old input case setting
  3886.           UBYTE OldCaseFlag=z->NoCaseConvert;
  3887.  
  3888.           // set input routine flag to NOT convert password to uppercase
  3889.           // this same flag affects the case setting of the OneKey()
  3890.           // function also
  3891.           z->NoCaseConvert=1;
  3892.           EnterPassword();
  3893.           
  3894.           // restore old input case setting
  3895.           z->NoCaseConvert=OldCaseFlag;
  3896.           }
  3897.  
  3898.     NOTE: the password received by EnterPassword() and, hence, the password
  3899.           received by the MyGetPassword() function above is always retained
  3900.           in z->InBuffer after calling EnterPassword(). Also note that
  3901.           if z->NoCaseConvert is set to 0 (the default) instead of 1, the returned
  3902.           password is all uppercase.
  3903.  
  3904. 2.  DOS arg support added to transpose for use in BBSMENU commands AND CNetC
  3905.     Cron events. Tranpose now accepts two DOS arguments; a user account number and
  3906.     an access group number to do auto-transpose.
  3907.  
  3908.       eg. {CNET:DOORS/transpose 1 31}
  3909.  
  3910.     The above would assign account number 1 to access group 31.
  3911.  
  3912.     With auto-transpose, the only "priviledge flag" not lost is the
  3913.     "SuperUser" flag.  All other flags, limits and priviledges are set to the
  3914.     newly assigned access group defaults.
  3915.  
  3916.     NOTE: both arguments must be specified and must be NUMERIC.  No
  3917.     handle/name parsing is performed for auto-transpose.
  3918.  
  3919. 3.  The Control panel's Mail, File and News task buttons are now multi-
  3920.     function pop up menu buttons that have different functions depending
  3921.     on whether the tasks are absent, running, iconified or menufied.
  3922.  
  3923. 4.  Controversial password echoing removed.  No longer does CNet echo
  3924.     a user's password back to them after the newuser process is complete nor
  3925.     does CNEt display the user's password as it is entered.  A second password
  3926.     prompt now serves as verification that the user entered the intended
  3927.     password.
  3928.  
  3929.     Changes to BBSTEXT lines 168-170 and 1124-1129 inclusive.
  3930.  
  3931. 5.  Both iuumail and mail-task's internet email import was ignoring mail files
  3932.     that had messages containing \t (tab) in the "from: " field. Fixed!
  3933.  
  3934. 6.  Mail-task was not sending spooled email unless an email was written while
  3935.     the system was connected to the internet.  mail-task now checks for a valid
  3936.     internet connection (via bsdsocket.library) every x seconds in order to
  3937.     send spooled internet mail.  The spool-send-timeout is configurable in
  3938.     the defaults page of Config as "Mail Timeout (secs).  If there is no spooled
  3939.     mail, the connection check is not performed.
  3940.  
  3941. 7.  File-task has received a GUI much like mail-task and news-task GUIs so that
  3942.     it is easier to visualize file-task's test and transform processes.
  3943.     Don't forget to copy (or create your own) sysdata:file-task.info if you
  3944.     want file-task to be capable of being iconified.
  3945.  
  3946.  
  3947. Changes/fixes for v4.27
  3948. -----------------------
  3949. 1.  Fixed CNetIRC enforcer hits that occured when no TCP stack was running
  3950.     and a user runs CNetIRC.
  3951.  
  3952. 2.  Mail-task is now capable of posting internet mail directly to a SMTP
  3953.     mail server.
  3954.     
  3955.     The following config settings have been added to CNet config, to
  3956.     support SMTP posting:
  3957.     
  3958.        DEFAULTS:  Mail Server
  3959.        OPTIONS:   Send Mail - options: "using external sendmail"
  3960.                                      "using internal SMTP"
  3961.  
  3962.  
  3963. Changes/fixes for v4.26k
  3964. ------------------------
  3965. 1.  Bug fixed in which expire mail caused mail counts to be improperly
  3966.     represented.
  3967. 2.  Fixed Control "stats" display bug which consumed CPU bandwidth.
  3968. 3.  Added "Posts" and "Responses" statistics display to Control.
  3969. 4.  Fixed Config bug in which Export-To areas and nodes were flagged
  3970.     incorrectly.  Exported areas were denoted with no "+" and non-exported
  3971.     nodes were denoted by a "+".
  3972.  
  3973.  
  3974. Changes/fixes for v4.26j
  3975. ------------------------
  3976.  
  3977. (This was just a quick bug-fix release consisting of mail-task, news-task
  3978. and Config and their associated #?.wizard and #?.cd files.)
  3979.  
  3980. 1.  Fixed some minor case inconsistencies in Config GUI.
  3981. 2.  Mail-task and news-task GUIs reworked slightly to allow the windows to
  3982.     be compacted even more.
  3983. 3.  Fixed a major Config ScreenMode bug that was causing TWO Config windows to
  3984.     open leaving one window open when Config was closed.
  3985.  
  3986. Changes/fixes for v4.26i
  3987. ------------------------
  3988. 1.  BBSList and associated amaint bbslist maintenance code re-written.
  3989.  
  3990. 2.  CBase.library is no longer required for CNet/4.  You may delete
  3991.     libs:cbase.library once you are satisfied that you will not be
  3992.     regressing to a version of CNet previous to v4.26i.
  3993.  
  3994.     Also note that because cbase is no longer used for amaint or bbslist,
  3995.     cbase.library is now obsolete.
  3996.  
  3997. 3.  Fixed cnet.library's HNameToUUCP() bug which caused netmail/email to
  3998.     "sysop" to be bounced.
  3999.  
  4000. 4.  Various Control Panel GUI fixes to optimize speed and correct visible
  4001.     quirks due to Control panel window sizing.
  4002.  
  4003. 5.  CNet's Config GUI received a brand new look designed to enhance
  4004.     user-friendliness!  Like all other CNet executables that are GUI-based,
  4005.     you must issue the command CD CNET: before running the new config.
  4006.     A new "Config" button has been added to the CNet Control panel to allow easy
  4007.     Config execution.
  4008.  
  4009.  
  4010. Changes/fixes for v4.26h
  4011. ------------------------
  4012. 1.  Fixed CNET:CLOSE command and added a new "ALL" argument.
  4013.  
  4014.        CLOSE ALL will close all ports one at a time when users logoff.
  4015.        CLOSE ALL HANGUP will close all ports and dump users immediately.
  4016.  
  4017. 2.  Fixed Z search lockups when a file with > 8 line short file description is
  4018.     displayed.
  4019.  
  4020. 3.  Various new Control GUI fixes.  Please notify ZenMetal if there are any
  4021.     remaining quirks apparent.
  4022.  
  4023.     KNOWN BUG: sometimes, when Control is resized, a few gadgets are not
  4024.     refreshed. This includes the window SIZE gadget itself.  The gadgets ARE still
  4025.     attached.  Resizing the window again will make the gadget(s) re-appear.
  4026.     This is a StormWizard SCROLLER gadget bug which has been reported to HAAGE &
  4027.     PARTNER and will be fixed as soon as possible.
  4028.  
  4029. 4.  Fixed cnfingerd which was not displaying any info to the querying remote
  4030.     user.
  4031.  
  4032.  
  4033. Changes/fixes for v4.26g
  4034. ------------------------
  4035. 1.  Control Panel, mail-task and news-task all received a new look.  CNet sysop
  4036.     GUIs are now created using HAAGE & PARNER's StormWizard 2.0.  You'll notice
  4037.     a nicer flow to CNet GUIs and also more Intuition Style Guide compliance.
  4038.     In a near future release, Config and Cron will also receive the new GUI
  4039.     treament as well as more bug-fixes reported throughout the v4.26f release.
  4040.  
  4041. Changes/fixes for v4.26f
  4042. ------------------------
  4043. 1.  Mail filtering at both user-level and sysop-level added.
  4044.  
  4045. 2.  sysdata:sys.MailKill added.  Use "MK" to edit this file.
  4046.  
  4047.     The MailKill file essentially functions as an incoming GLOBAL mail filter.  What
  4048.     makes it global is that no matter WHO the incoming mail was addressed to, it
  4049.     will never be imported/delivered to anyone on your system.
  4050.  
  4051.     You may put handles, real names, network addresses or partial matches for any of
  4052.     the aforementioned in the mailkill file.  Mail kill patterns/names
  4053.     are entered one pattern per line.  Be VERY careful with auto-killing internet
  4054.     mail.  You may essentially short out your complete internet mailing system.
  4055.     Be sure to use the proper filter pattern forthe intended mailkill entry.
  4056.     
  4057.     Each user will also have his own private mail kill capabilities, known as
  4058.     a "twit filter".  This is edited by the user using the "MF" (MailFilter)
  4059.     command. (but not yet implemented as of CNet v4.26f)
  4060.  
  4061.     Kill filters use the familiar AmigaDOS pattern parsing/matching system so,
  4062.     if you have a wildstar (*) commodity installed, * may be used in place of #?
  4063.     in patterns.  Also the special characters ~()? may be used.  The character
  4064.     '?', when used in a pattern represents any character. "#?" represents
  4065.     a whole substring of characters. See your AmigaDOS manual for more
  4066.     information on AmigaDOS file patterns.
  4067.  
  4068.     Changes to BBSTEXT line 1200.
  4069.  
  4070.     Example MailKills
  4071.     -----------------
  4072.  
  4073.     eg. Internet filters:
  4074.  
  4075.         single user:                    username@somedomain.ext
  4076.         whole domain:                   #?@somedomain.ext
  4077.         .org domains:                   #?@#?.org
  4078.         .com domains:                   #?@#?.com
  4079.  
  4080.         ISP specific kills
  4081.  
  4082.         all users at netrover's
  4083.         Windsor providership:           #?@#?wnd#?.netrover.com
  4084.  
  4085.         all users at AOL:               #?@aol.com
  4086.                            
  4087.         psuedo-Class C internet filter: #?@ipbits1.ipbits2.ipbits3.#?
  4088.         psuedo-Class B internet filter: #?@ipbits1.ipbits2.#?.#?
  4089.         pseudo-Class A internet filter: #?@ipbits1.#?.#?.#?
  4090.  
  4091.         NOTE: although Class A, B and C internet IPs have ranges
  4092.         of bits for true class A, B and C qualification, ranges are currently not
  4093.         allowed in mail filters.
  4094.  
  4095.         Ranges WILL be added in the future.
  4096.  
  4097.  
  4098.     eg. FTN (Fidonet) filters
  4099.  
  4100.         single user:                    username@zone:net/node.point
  4101.         user@subnet:                    Spammer@1:246/#?.#?
  4102.         whole subnet (all nodes):       #?@1:246/#?.#?
  4103.         whole zone:                     #?@1:#?/#?.#?
  4104.  
  4105.     eg. Local user filters
  4106.  
  4107.         single user real name:          Ray Akey
  4108.         single user handle:             Heavy Metal
  4109.         single user account:            1
  4110.         multiple user account:          1-20
  4111.         all local users:                #?
  4112.  
  4113.     eg. Short circuit ALL mail on your system (requires 4 patterns)
  4114.  
  4115.         #?*#?:#?/#?.#?
  4116.         #?@#?:#?/#?
  4117.         #?@#?
  4118.         #?
  4119.  
  4120.     Again, be very careful adding MailKill entries as a few mis-keyed entries
  4121.     could result in short-circuiting the ENTIRE mail system on your BBS or,
  4122.     at least short-circuiting any one of local, fidonet or internet mail.
  4123.  
  4124.  
  4125. 3.  Mail-task received additional log window output to support MailKills.
  4126.     If a global mailkill has been effected, you will see the message,
  4127.     "Global MailKill: <username>" in the Mail-task window.  Additionally,
  4128.     you will see information on who the sender was sending the mail to
  4129.     immediately under a mailkill message as: Intended recipient: <username>
  4130.  
  4131. 4.  Implementation of personal user mail filters.  Users use the MAIL;FILTER
  4132.     command to edit their personal mail filter list.
  4133.  
  4134.     The SYSOP (or any user with the SYSOP MAINTENANCE priviledge flag) may
  4135.     edit the filter lists of other users by supplying an additional
  4136.     argument (handle, real name, account) to the FILter command.
  4137.  
  4138.        eg. MAIL;FILTER Heavy Metal
  4139.  
  4140.     Changes to BBSMENU section "17; Mail".  Note the addition of the "FILter"
  4141.     command.
  4142.  
  4143.     Changes to menu file systext:menu/mail
  4144.  
  4145.     Mail filters are entered one per line.
  4146.     Mail filters can be an account number or a partial or full user/network
  4147.     address.
  4148.  
  4149.        examples: Ray Akey@1:246/74          <- single user REAL name
  4150.                  Heavy Metal@1:246/74       <- alternate (handle) method for the same user
  4151.                  rakey@cnetbbs.net          <- internet address
  4152.                  #?@netrover.com            <- all users at ISP netrover
  4153.                  1                          <- local account #1 (sysop)
  4154.                  Heavy Metal                <- local user
  4155.  
  4156. 5.  Personal user mail filters added for subject filtering. Additional
  4157.     Changes to BBSTEXT lines 278 and 2261-2264.
  4158.  
  4159.     The sysop (or any user with FULL maint) can edit user mail filters
  4160.     by entering the POST OFFICE FILTER SETTINGS (MAIL;FIL) and then Nx or Sx,
  4161.     where x is the user's account number, handle or real name.
  4162.  
  4163.     Please note that subject filters can be a specific topic, or may contain
  4164.     pattern matching characters (?, #?, *, etc.)
  4165.  
  4166.     Any incoming personal mail that has a topic matching any of the patterns
  4167.     specified in the recipient's subject mail filters will be ignored by
  4168.     CNet.
  4169.  
  4170. 6.  Added section "43;Mail filters" to BBSMENU (see !bbsmenu_stock).
  4171.  
  4172. 7.  Added menu file systext:menu/mailfilter.
  4173.  
  4174.  
  4175. Changes/fixes for v4.26e
  4176. ------------------------
  4177. 1.  Short descriptions (most importantly, FILE_ID.DIZ) were not being trimmed
  4178.     properly after searching for FILE_ID.DIZ or FILES.BBS. Fixed.
  4179.  
  4180. 2.  Fixed improperly diagnosed disk free-space displays that have been wrong
  4181.     since CNet/3 days.
  4182.  
  4183. Changes/fixes for v4.26dR2
  4184. --------------------------
  4185.  
  4186. 1.  Logging of "ABuffer munged" to sysdata:log/execute whenever the BBS
  4187.     detects that an external door has corrupted z->ABuffer.
  4188.  
  4189. 2.  ABuffer munge check now corrects ABuffer in an attempt to reduce system
  4190.     crashes.  Sysops should still reboot or reload the troubled port ASAP
  4191.     if they see "ABuffer munged but temporarily corrected" in the log
  4192.     sysdata:log/execute.  Be sure to check that log 408 exists in the LOGS
  4193.     section of CNet Config.  Log 408 should be named "Execute"
  4194.  
  4195. 3.  Added ANSI detect @ login. Changes in lines 672, 673 and 674 of BBSTEXT.
  4196.     Be sure to remove any previously installed ANSI detection doors from BBSTEXT
  4197.     line 22.
  4198.  
  4199. 4.  When moving file items (the MO command), it is now possible to REPLACE an
  4200.     existing file of the same name.  Change to BBSTEXT line 1779.
  4201.  
  4202. Changes/fixes for v4.26d (Addendum bug-fix #1)
  4203. ----------------------------------------------
  4204. 1.  Implemented Personal user configuration in CNetIRC.  Changes to BBSTEXT
  4205.     lines 2292-2334.
  4206.  
  4207. 2.  Fixed bug where invalid fidonet mail addresses were being incorrectly
  4208.     interpreted and sent as internet email.
  4209.  
  4210. 3.  Nodelist searching (COMMAND: mail;nodelist) fixed for Traplist.library
  4211.     v5.2 and below.  The newer traplist.library v5.4 NLEnumNode() function
  4212.     is broken and cannot be fixed until I receive a new developer package 
  4213.     from the Trapdoor people (request in progress).
  4214.  
  4215. 4.  News-Task is now started by Control.  To stop Control from running this
  4216.     task, add the "W" switch to your Control args in CNet-Startup as follows:
  4217.     
  4218.        run >NIL: <NIL: Control W
  4219.  
  4220.                 OR
  4221.  
  4222.        run >NIL: <NIL: Control NONEWSTASK
  4223.  
  4224. 5.  SOME **CNETC** DOORS MAY NEED TO BE RECOMPILED/UPDATED.  PLEASE READ THE
  4225.     FOLLOWING IN ENTIRETY TO AVOID PROBLEMS.
  4226.  
  4227.     The largest BBSTEXT line length restriction has been removed!  The size
  4228.     (length) of the internal ABuffer is now (somewhat) dynamically configurable.
  4229.     The sysop sets the MAX size of ABuffer in Config/Limits now, in the
  4230.     "Output Buffer (ABuffer) size" attribute.
  4231.  
  4232.     If you forget to set this in Config/Limits, the BBS will use a value of 256
  4233.     by default.
  4234.  
  4235.     The value of "ABufferSize" can be anywhere between 256 and 9999 inclusive.
  4236.     These limits are enforced by Config/Limits.
  4237.  
  4238.     Please be aware that, after making a change to Config/Limits/ABuffer size,
  4239.     Control MUST be restarted before the change will take effect.
  4240.  
  4241.     As a side note, contrary to what some sysops believe, there is only ONE
  4242.     copy of bbstext in memory at any given moment.  CNet does NOT load a
  4243.     separate copy of bbstext for each and every port.  If you increase your
  4244.     bbstext by 100 characters, it will only take up approx 100 bytes of memory.
  4245.  
  4246.     The only exception to the "one bbstext in memory at a time" rule is
  4247.     if you are using "forced" or "port specific" bbstexts for different ports,
  4248.     or if you are using more than a single "text translation" (eg.
  4249.     bbstexts in two languages)
  4250.  
  4251.     Another consideration is to be careful not to set ABufferSize TOO large
  4252.     as you lose (number_of_ports_loaded * size_of_ABuffer) bytes when ABuffer
  4253.     is increased.  CNet previously used 256 bytes.  A value of 1024 is now 
  4254.     recommended.  But, by all means, if you have the memory to spare, feel
  4255.     free to make it larger.  You are the one who will benefit by the increased
  4256.     size by being able to expand bbstext line lengths that much more.
  4257.  
  4258.     C CODERS NOTE #1: please note that ABuffer is now a POINTER variable.  That is,
  4259.     the memory set aside for ABuffer can now reside anywhere in memory.  Do not
  4260.     count on ABuffer being "in" PortData memory space anymore.  It
  4261.     is allocated when each port loads.  z->ABuffer now points to the location
  4262.     where the buffer was actually allocated.
  4263.  
  4264.     C CODERS NOTE #2: Any door(s) you have written, that use z->ABuffer, MUST be
  4265.     recompiled.  SOME older doors may work ok as long as they do not use PutA()
  4266.     or otherwise access z->ABuffer.  AmigaDOS doors are not affected by this change
  4267.     if they do not access z->ABuffer or myp->PortZ[x]->ABuffer.
  4268.     A general rule is to check the WHO command after running a door.  If the actual
  4269.     port text is not shown, z->ABuffer has been corrupted and the door you ran last
  4270.     needs to be updated.  Another symptom that z->ABuffer has been corrupted is that
  4271.     the HEADER (eg. Name, date) of mails and posts/responses will not appear but the
  4272.     body text of the message will be printed unscathed.
  4273.  
  4274.     AREXX CODERS: If your code uses z->ABuffer directly, you will need to
  4275.     alter your door so that it gets the 4 BYTE (32-bit) ADDRESS of the ABuffer
  4276.     from z->ABuffer and use THAT address to access ABuffer.  The 4-byte address
  4277.     that z->ABuffer points to is the start of the actual memory block that
  4278.     where ABuffer space begins.  For example, If the number in z->ABuffer is
  4279.     1135a278 Hex, and ABufferSize is 1000, then the actual buffer starts at
  4280.     1135a278 Hex and ends at 1135a660 Hex.
  4281.  
  4282.     ALL CODERS: The sysop-defined ABuffer LENGTH is stored in myp->gc.ABufferSize
  4283.                 The address of the START of allocated ABuffer memory is stored in
  4284.                 the pointer z->ABuffer
  4285.  
  4286. 6.  CNet no longer prompts you to "Enter an OPTIONAL long description" if "AO!" is
  4287.     used to adopt files.
  4288.  
  4289. 7.  System "NEWS" path (eg. news users see at login) is now configurable in
  4290.     the PATHS section of CNet Config.  If you have a subboard set up for users
  4291.     to read system news, make sure the "data path" of the subboard and the path
  4292.     in "Config/Paths/News Path" are the same.
  4293.  
  4294. 8.  OLMs are now time-stamped (coders: see olms.h for type).  When an OLM is
  4295.     displayed by CNet, it will print the elapsed time (mins:secs format) since the
  4296.     OLM was received from the sender.
  4297.  
  4298.     Changes to BBSTEXT lines 893, 898 and 920.
  4299.  
  4300. 9.  It is now possible to specify whether specific ports are shown on the WHO
  4301.     display whether idle or not.  This is set in CNet Config, in the "modems"
  4302.     section, for each port.
  4303.  
  4304.     To toggle whether a port is to be shown on the WHO display, select the modem
  4305.     number in Config/Modems and click on the list item "Show Port on WHO display."
  4306.     To effect this change, all ports must be reloaded (eg. close port and reload -
  4307.     Control does NOT have to be restarted!!).
  4308.  
  4309.  
  4310. Changes/fixes for v4.26c
  4311. ------------------------
  4312. If you are running a version previous to 4.26a, please see the note in the
  4313. changes for 4.26b section - corrupt userdata may ensue if you to not read
  4314. that section
  4315.  
  4316. Also: install ALL files and libraries present in this package.  Failure to do
  4317. so may result in corrupted userdata.
  4318.  
  4319. 1.  Fixed Edit Mail Alias (MA) Address field to allow longer for internet
  4320.     addresses.
  4321.  
  4322. 2.  Furthered CNetIRC completion.  CNetIRC is a complete IRC solution for your
  4323.     users to chat using the Internet Relay Chat protocol.  CNetIRC, like other
  4324.     internet clients, requires that you have a TCP/IP stack running.  ZenMetal
  4325.     Software recommends Miami which is much easier than AmiTCP for novice sysops to
  4326.     install.  The other Amiga TCP/IP stack is AmiTCP, of which a demo can be
  4327.     obtained from aminet sites worldwide.
  4328.  
  4329.     The Miami demo can be acquired from the ZenMetal support BBS(es) and aminet
  4330.     sites worldwide. The Miami demo has a 30 minute connection limit which is
  4331.     generally enough time to test a functional setup.  At the time of writing,
  4332.     Miami's registration fee is $35.00 U.S.
  4333.  
  4334.     CNetIRC setup:
  4335.    
  4336.         1) copy CNetIRC to cnet:doors/internet_support
  4337.         2) add cnet:doors/internet_support/CNetIRC as a CNetC door either in BBSMENU or
  4338.            as a regular door.
  4339.  
  4340.            To add as a menu command:
  4341.  
  4342.             - edit cnet:bbsmenu
  4343.             - add the following to the END of section 1;Everywhere commands
  4344.               remember: the curly brace "{" is actually CTRL-Q
  4345.               the x in the command below is an access group number; the minimum
  4346.               access required to use the command "IRC"
  4347.  
  4348.                IRC `x | {cnet:doors/internet_support/cnetirc}
  4349.  
  4350.         3) login and run your CNetIRC door.
  4351.         4) Choose the appropriate CNetIRC main menu command.  An explanation
  4352.            of the menu sections follows:
  4353.            
  4354.               1. Terminal Preferences
  4355.  
  4356.                  these are the ANSI emulation options.
  4357.                  
  4358.                     ANSI scrolling
  4359.                     uses ANSI scrolling sequences (works well with most terminals.
  4360.  
  4361.                     ANSI locking
  4362.                     for CNet LOCAL console only.  This emulation requires a
  4363.                     terminal that supports the ANSI locking code (ANSI 't')
  4364.                     and most PC/Amiga terminals do not.  CNet Amiga, however,
  4365.                     does.
  4366.  
  4367.                     Simple ANSI
  4368.                     a simplified scrolling using minimal ANSI. this is the fastest
  4369.                     display setting useful for busy channels.
  4370.  
  4371.               2. Add/edit server
  4372.  
  4373.                  this is where users configure their "preset" channels.  Users
  4374.                  may specify a default channel to join for each and every
  4375.                  configured IRC server.
  4376.  
  4377.                  some popular IRC servers/channels are:
  4378.  
  4379.                  SERVER:PORT                CHANNEL   DESCRIPTION
  4380.                  ========================== ========= ========================
  4381.                  irc2.magic.ca:6667         #amiga    Amiga users unite
  4382.                  babylon.beyondirc.net:6667 #cnet     CNet sysops/CNet support
  4383.                  irc.primary.net:6667       #cnet     CNet sysops/CNet support
  4384.                  irc.texas.net:6667         #amiga    Amiga users unite
  4385.                  irc1.cerf.net:6667         #amiga    Amiga users unite
  4386.  
  4387.               3. Delete server
  4388.  
  4389.                  use this option to delete a "preset" server that is not
  4390.                  needed anymore.
  4391.  
  4392.               4. Personal configuration
  4393.  
  4394.                  Select this option to change your "identity" in the channels
  4395.                  you join.  You may edit Real name and nickname here.
  4396.  
  4397.               5. Quit
  4398.  
  4399.                  Select this option to Quit CNetIRC.
  4400.  
  4401.               6. Sysop configuration
  4402.  
  4403.                  Various sysop configuration items.  (not yet implemented)
  4404.  
  4405.         5) To login to an IRC server, press ENTER at the main CNetIRC menu prompt.
  4406.  
  4407. 3.  identd added for internet user identification.  This is required by many
  4408.     IRC servers as, if identd were not supported, each user would appear to look
  4409.     the same to the remote server. This can lead to many effects, some of which
  4410.     are entire domains being K-lined (removed from access to a server) and
  4411.     single user bans.  The bottom line is, if you are going to allow your users
  4412.     to access IRC, make sure you have an identd server running.  CNet's identd
  4413.     has been coded to allow multiple users to use CNetIRC on different ports
  4414.     without consequence.
  4415.  
  4416.     To configure identd in your TCP stack configuration:
  4417.  
  4418.       MIAMI USERS
  4419.       -----------
  4420.       select, in your miami window, DATABASE and then choose INETD in the
  4421.       cycle button. Add the following entry to the list of inetd services:
  4422.  
  4423.           Service : auth
  4424.           Socket  : stream
  4425.           Protocol: tcp
  4426.           Wait    : nowait
  4427.           User    : nobody
  4428.           Server  : cnet:doors/internet_support/identd
  4429.  
  4430.       AMITCP USERS
  4431.       ------------
  4432.       edit/create the file amitcp:db/inetd.conf and add the following entry:
  4433.  
  4434.           auth stream tcp nowait nobody cnet:doors/internet_support/identd
  4435.  
  4436.     if an AUTH entry already exists, alter it so that it appears as noted
  4437.     above.
  4438.  
  4439.     Note: identd does not have to be in the CNET: directory.  You may
  4440.     put the identd server anywhere you like but be sure to alter the path in
  4441.     your TCP stack's database (the configuration lines above) to reflect the
  4442.     true path of the identd program.
  4443.  
  4444. 4.  Added BBSTEXT lines 2292-2330.
  4445.  
  4446. 5.  Fixed the bug where CNet was reporting UUCP/Mail ID in use when the "used"
  4447.     mail id belonged to a killed user. 
  4448.  
  4449. 6.  Fixed visual editor bug that caused a guru if the title header
  4450.     (eg. "On xxx, xxx wrote:") wrapped to two lines.
  4451.  
  4452. 7.  Added small header to ReadLog text, printed before the log is displayed.
  4453.     Change to BBSTEXT line 2283.
  4454.  
  4455.  
  4456. Changes/fixes for 4.26b
  4457. -----------------------
  4458. CRITICAL NOTE FOR SYSOPS RUNNING 4.26a:
  4459.  
  4460.                YOU MUST RUN THE 426B SHELL EXECUTABLE FOUND IN THE UPDATES
  4461.                DRAWER OF THIS UPDATE AFTER INSTALLATION!
  4462.  
  4463. IF YOU ARE RUNNING 4.25a/4.26 OR PREVIOUS:
  4464.  
  4465.                ** DO NOT ** RUN THE 426B SHELL EXECUTABLE FOUND IN THE
  4466.                             UPDATE DRAWER
  4467.                COPY or MOVE CNET:BBSCONFIG4 as CNET:CONFIGS/BBSCONFIG4
  4468.                COPY or RENAME SYSDATA:BBS.UDATA as SYSDATA:BBS.UDATA4
  4469.  
  4470.  
  4471. 1. Mail ReplyTo preferences moved to mail:users/xxx/prefs/MAIL
  4472.  
  4473.    Programmers wishing to read the user's ReplyTo preferences, must read
  4474.    this file; it is NOT kept in memory.  The data is saved in ASCII format
  4475.    so AmigaDOS FGets() and ANSI fgets() (and other string-oriented file input
  4476.    functions) can be used to read the data effortlessly.
  4477.  
  4478. 2. GETUSER shift experienced with v4.26a reverted back to v4.26 (99% CNet/3
  4479.    compatible) state.
  4480.  
  4481. 3. !BBSTEXT_STOCK line 2222 inserted and one of the sets of curly brackets
  4482.    {} below line 2222 was removed.
  4483.  
  4484.  
  4485. Changes/fixes for 4.26a
  4486. -----------------------
  4487. CRITICAL NOTE: YOU MUST RUN THE 426A SHELL EXECUTABLE FOUND IN THE UPDATES
  4488.                DRAWER OF THIS UPDATE AFTER INSTALLATION!
  4489.  
  4490. 1.  Version bumped to 4.26a because the CNET_VERSION string for v4.25a was
  4491.     prematurely defined as "$VER: CNet PRO 4.26".
  4492.  
  4493. 2.  Users can now use [W]rite to edit file short descriptions without the sysop
  4494.     being forced to enable "Diz Edit before save".
  4495.  
  4496. 3.  When a port cannot open the required device, The specified port in
  4497.     Control's display is no longer locked in its "Loading.." state.
  4498.  
  4499. 4.  Changes to lines 2141-2142 and 2162-2163 of BBSTEXT for more verbose
  4500.     output of FILE_ID.DIZ processing.
  4501.  
  4502. 5.  New configuration item in Config/Modems: Idle WHO User
  4503.  
  4504.     This is the string that will be displayed in each port's "Name/Handle"
  4505.     area in the WHO display when no one is logged in to the port.  If no string
  4506.     is set here, the text on BBSTEXT line 903 will be displayed as it was in 
  4507.     previous CNet versions.
  4508.  
  4509.     A good use of this field is to put the phone number for the port in it, or
  4510.     perhaps make note that the port is a telnet line or something along
  4511.     those lines.
  4512.  
  4513.  
  4514.     To accomplish setting this field on local ports which could previously
  4515.     not have a "Modems" configuration, CNet will now allow you to create a
  4516.     "modem" with its DEVICE name left BLANK.  If the device name is left blank,
  4517.     CNet assumes that the port is a LOCAL PORT.
  4518.  
  4519.     eg. you can create a dummy port 0 in modems with no device name specified
  4520.         and set an "Idle WHO User" string of "Sysop Port 0".
  4521.  
  4522. 6.  Furthered completion of DIZ processor.  Any text in a description that
  4523.     matches COMPLETELY the contents of any line in sysdata:DizStripText
  4524.     is removed from the short description.
  4525.  
  4526.       eg.  if a FILE_ID.DIZ contained the following:
  4527.  
  4528.               ---------------------------------------
  4529.               A great new software release!
  4530.               We have pirated it so often that no
  4531.               one is PAYING for it! Therefore, we
  4532.               are morons. --------- A KuElLe GrOuP!
  4533.               ---------------------------------------
  4534.  
  4535.            ..and DizStripText contained the following lines to be stripped:
  4536.  
  4537.               some line
  4538.               another line
  4539.               /*|------------|*\
  4540.               --------- A KuElLe GrOuP!
  4541.               -
  4542.  
  4543.            ..the following would be the short description after stripping:
  4544.  
  4545.               A great new software release!
  4546.               We have pirated it so often that no
  4547.               one is PAYING for it! Therefore, we
  4548.               are morons.
  4549.  
  4550. 7.  Addition to line 2282 of BBSTEXT.
  4551.  
  4552. 8.  Added "Reformat DIZ" option to subboard EL in Diz Options.  This setting,
  4553.     when enabled strips successive spaces, tabs and newlines to make the
  4554.     final stripped description look "prettier".  It is really only of
  4555.     use if the "Use Strip Text" option is enabled.  It CAN be used to
  4556.     clean up sloppy DIZ files though, if enabled.
  4557.  
  4558.         eg. if the stripped DIZ looked as follows:
  4559.  
  4560.  
  4561.  
  4562.               A great new software release!
  4563.  
  4564.  
  4565.               We have pirated         it so often that no
  4566.  
  4567.  
  4568.               one is PAYING      for it! Therefore, we
  4569.               are morons.
  4570.  
  4571.  
  4572.  
  4573.             By enabling REFORMAT DIZ, it would clean up the description to
  4574.             look like the one below:
  4575.  
  4576.               A great new software release!
  4577.               We have pirated it so often that no
  4578.               one is PAYING for it! Therefore, we
  4579.               are morons.
  4580.  
  4581. 9.  CNet now checks MailBoxClosed status before carbon copying message base
  4582.     posts/responses/echomail to users' mailboxes.  If the mailbox is closed,
  4583.     the item is not sent to mail-task for carbon mailing.
  4584.  
  4585. 10. IUUMail is no longer required for CNet/4.  Mail-task now does the job
  4586.     that IUUMail previously assumed.  It is all automatic, so no longer
  4587.     do you have to create cron events to get iuumail to run.
  4588.  
  4589.     To enable mail-task to recognize and import new internet mail, you must set
  4590.     TWO CNet attributes in CNet/Config:
  4591.  
  4592.        1. Config/Options:  Be sure "Monitor Internet mail" is enabled.
  4593.  
  4594.        2. Config/Paths:    Be sure to put here the path to your user internet
  4595.                            mail directory (eg. where your mail retrieval
  4596.                            software creates the "username" files - usually
  4597.                            UUMAIL: 
  4598.  
  4599.                            This was made configurable for future expansion.
  4600.  
  4601.                            NOTE: Be sure the path that you put here exists.  If
  4602.                                  it does not, mail-task will not create it for
  4603.                                  you and if it does not exist mail-task will
  4604.                                  ignore your "Monitor Internet mail" setting.
  4605.  
  4606.     NOTE: iuumail will continue to be distributed with CNet for the next few
  4607.     maintenance upgrades, until we get initial reports of any bugs with
  4608.     mail-task importing of internet mail. Thereafter, IUUMAIL will be obsolete.
  4609.  
  4610. 11. Another small internal bug with mail-task GUI and text containing tabs has
  4611.     been found and fixed. This should finally end any CPU contention caused by
  4612.     an endless loop.
  4613.  
  4614. 12. CNet will now create the user Web directory mail:users/<MailID>/Web, if
  4615.     enabled in Config/Options.  To enable this, go to the Options editor
  4616.     of CNet Config and enable "Create user WEB  directory".
  4617.  
  4618.     Mike Meyer, The author of Amiga Web Server (AWS), has released a beta
  4619.     version of cnetdir.library. For AWS to recognize CNet user web pages, this
  4620.     option MUST be enabled in Config/Options.
  4621.  
  4622. 13. CNet no longer auto-scans for new mail in mail-read. While this was a nice
  4623.     idea, it caused too many problems and confusion for the user.  The new
  4624.     user-friendly way to FORCE a rescan while in mailread is for the user to
  4625.     issue the command "RESCAN" if he/she sees that new mail is received while
  4626.     in mailread.
  4627.  
  4628.     See the end of !bbsmenu_stock section "7; Read Mail" for changes/additions.
  4629.  
  4630.     Changes to lines 2160-2161 and 219 of !bbstext_stock.
  4631.  
  4632.     Changes to systext:menu/Mail-Read.
  4633.  
  4634. 14. Fixed the "New" button in Config/Modems.
  4635.  
  4636. 15. Minor fixes to Subboard VDE.  Please run the "CNET:VDE" program in an
  4637.     AmigaDOS Shell.
  4638.  
  4639. 16. IUUMAIL/Mail-task received extended parsing to support POP3 imported mail
  4640.     batches.
  4641.  
  4642. 17. Fixed bug that caused port lockup if the username in MailSend (MS) was preceded
  4643.     only by a semi-colon.  eg. "MS ;sysop"
  4644.  
  4645. 18. News-task added.  News-task is a background Usenet news posting daemon
  4646.     that is activated when a user posts or replies in an NNTP "usenet news"
  4647.     subboard.  Please note that news-task only posts to an NNTP news server.
  4648.     If you do not know the NNTP server name of your ISP (Internet Service
  4649.     Provider), please contact your provider's technical support person to attain
  4650.     this information.
  4651.  
  4652.     To activate news-task posting, you must run CNet Config and go to the
  4653.     Options editor and make sure that "News-task post" is enabled.  You must
  4654.     also configure the NNTP news server name in CNet's Config/Defaults
  4655.     section under the item "NNTP news server".
  4656.  
  4657.     If news-task posting is not enabled in CNet Config/Options, CNet will use
  4658.     "Postnews" as configured on line 2151 of BBSTEXT.
  4659.  
  4660.     A description of line 2151 follows:
  4661.  
  4662.       POSTNEWS <%s -f %s -r "%s"
  4663.  
  4664.       where:
  4665.  
  4666.          POSTNEWS - the name of the external command used to post news via UUCP
  4667.                     or NNTP or whatever protocol/mechanism your system needs
  4668.                     to use to post Usenet news.
  4669.  
  4670.                     If you use INetUtils, you can rename NNTPPost as PostNews
  4671.                     and place it in your C: directory or any other path'ed
  4672.                     directory.  if you do not do this, you must replace
  4673.                     the POSTNEWS text with the full path and filename of the posting
  4674.                     program (eg. UUCP:C/POSTNEWS)
  4675.  
  4676.                     It is understood, from the PostNews author's documentation,
  4677.                     that NNTPPost uses the same command line arguments as PostNews
  4678.                     so that NNTPPost can be used as a direct replacement for the
  4679.                     UUCP PostNews command.
  4680.  
  4681.          <%s      - is replaced by the text to be posted.
  4682.  
  4683.          -f %s    - specifies the username (eg. UUCP/Mail ID) that the user is known
  4684.                     by on your system.  The %s is replaced internally, by CNet,
  4685.                     with the user's UUCP/Mail ID (eg. rakey)
  4686.  
  4687.          -r "%s"  - specifies the user's REAL NAME.  The "%s" is replaced
  4688.                     internally by the user's real name (eg. "Ray Akey")
  4689.  
  4690. 19. Added "Reply-To" string/variable to each user account.  When the 426a upgrade
  4691.     program is executed, this field is filled in automatically as the user's
  4692.     mail id (formerly UUCP ID) plus your systems domain name as configured
  4693.     in the main window of CNet's Config GUI.  For example, a user residing
  4694.     on the system with an Inet Hostname of "tggh.net" and a user name of "rakey"
  4695.     would have a "reply-to" default of:
  4696.     
  4697.        rakey@tggh.net
  4698.     
  4699.     Your users may wish to change their Reply-To so that CNet uses their "usual"
  4700.     email address.  For example, I would change my Reply-To address on tggh.net
  4701.     from:
  4702.  
  4703.        rakey@tggh.net
  4704.  
  4705.     to my real email address:
  4706.  
  4707.        rakey@cnetbbs.net
  4708.  
  4709.     The user edits his Reply-To in the new MAIL PREFERENCES editor by using
  4710.     the command "MAIL;PREFS" at any CNet prompt.
  4711.  
  4712.     The user's Reply-To information is currently only used when "news-task post"
  4713.     is enabled and when outgoing posts/responses are made in NNTP (Usenet)
  4714.     subboard(s).
  4715.  
  4716.     When SMTP/SMTPd is integrated into CNet Amiga, this field will also be
  4717.     used in outgoing internet email.
  4718.  
  4719. 20. Getuser offset type 4 added for direct access to MainPort->MPE.  See
  4720.     the included control.h for information and variables contained in
  4721.     struct MainPortExtension.
  4722.  
  4723. 21. Added BBSTEXT lines 2283-2291 for mail preferences support/expansion.
  4724.  
  4725. 22. Added text file systext:new/replyto
  4726.  
  4727.  
  4728. Changes/fixes for v4.25a/4.26
  4729. -----------------------------
  4730. 1.  Mail-task AppIcon problems fixed.  Config no longer locks mail-task in
  4731.     iconified state.
  4732.  
  4733. 2.  Mail-task menufy problems fixed.  Config no longer forces mail-task
  4734.     to create an AppIcon if mail-task is not already iconified.
  4735.  
  4736. 3.  Changes to lines 1646-1647 of BBSTEXT.
  4737.  
  4738. 4.  SubDirName/GO keyword dupe checking now performed when adding
  4739.     a new list object (AL).
  4740.  
  4741. 5.  Repair_Sub was crashing and writing invalid filenotes/short descriptions.
  4742.     Should be fixed now.
  4743.  
  4744. 6.  ReadLog (RL) now shows all available logs if no argument is given.
  4745.     BBSTEXT lines 2273-2278 added.
  4746.  
  4747. 7.  CNet now tries 3 times to send a file to file-task for test/txform.
  4748.     If it fails the first time, it will try twice more before processing in
  4749.     the foreground.  file-task may not be ready for a TE/TR request if it
  4750.     is currently scanning newly queued requests.
  4751.  
  4752. 8.  Fixed a bug in file-task that caused some items to be tested/transformed
  4753.     immediately instead of in the background.
  4754.  
  4755. 9.  Fixed ARexx SAVESCRATCH command which was not saving account/user changes
  4756.     properly.
  4757.  
  4758. 10. Change to bbstext line 521.
  4759.  
  4760. 11. Fixed bug that caused MailRead to clear the list of mail items if the user
  4761.     was already in mail and used the MR command again.
  4762.  
  4763. 12. Each subboard now has a "Where/Doing" string that allows the sysop/subop
  4764.     to set what is shown in the "Where" field in Control and WHO displays.
  4765.     The maximum length of this string is 16 characters.
  4766.     (programmers: see SubboardType4.SubDoing)
  4767.  
  4768.     Note: Be careful using "EL 1-" and setting the "Where/Doing" string as
  4769.           it is possible to clear this setting for all subboards object types
  4770.           on the current list.  This may be desirable in some cases so it is
  4771.           not ghosted in the "EL x-x1" VDE scenario.
  4772.  
  4773. 13. Small mail-task bug fixed which caused AreaFix messages to be bounced
  4774.     back to their origin even though a successful AreaFix request was
  4775.     processed and sent to the requesting system.
  4776.  
  4777. 14. Re-implemented capability of using EL within subboards.  Currently, EL
  4778.     may be used only in message/file/subdirectory subboard (object) types.
  4779.  
  4780. 15. ML (Move List) can now be used to move a subboard object ANYWHERE in your
  4781.     Base.  ML can still be used as before, if two list numbers are supplied,
  4782.     to swap two subboard on the current list.  However, if only one subboard
  4783.     number (on the current list) is passed (eg. ML12), you will be lead
  4784.     through the list of subboards and can choose an appropriate place to insert
  4785.     the subboard object.  This applies to all subboard object types. whether a
  4786.     subdirectory or regular base (eg. file, message, door, executable) subboard.
  4787.  
  4788.  
  4789. Changes/fixes for v4.25
  4790. -----------------------
  4791. 1.  MailSend has received extended handling of closed mailboxes. If a user's
  4792.     mailbox is closed and he tries to send mail, he/she is led through a
  4793.     series of prompts which accomplish any one of the following options,
  4794.     in the order listed:
  4795.  
  4796.       - Abort the MailSend
  4797.       - Set a forwarding account to receive his/her mail.
  4798.       - Open his/her mailbox.
  4799.  
  4800. 2.  Repair_Mail (RRM) can be used by users to repair the mail in their
  4801.     own mail folder(s) only.
  4802.  
  4803. 3.  More mail-task fixes to prevent lock ups.
  4804.  
  4805. 4.  NNTP/DIZ VDE options are now properly ghosted for non-message/file
  4806.     subboard objects.
  4807.  
  4808. 5.  Access slider in Config/accounting fixed to properly update the Access
  4809.     level and Charge/units/value list.
  4810.  
  4811. 6.  Yank-task fixed so it cannot be ran again if already running.
  4812.  
  4813. 7.  OLMs that cannot be saved (ie. if user logs off before OLM could be sent)
  4814.     now return a prompt asking the sending user if he/she would like to save
  4815.     the OLM to the recipient's mailbox.
  4816.  
  4817.     This is only done for SINGLE recipient OLMs.  This feature does not apply
  4818.     to *BROADCAST* OLMs.
  4819.  
  4820. 8.  "MS <notexistant_user>!" no longer goes into an endless loop.
  4821.  
  4822. 9.  Subboard-object-type now checked before yank-task attempts to "lock"
  4823.     the path.
  4824.  
  4825. 10. Updated and expanded commenting in empty.c.
  4826.  
  4827. 11. Added double-click capability to the main list of configurable
  4828.     options.  You can now double-click on Accounting, Archivers, etc,
  4829.     rather than clicking and then hitting "edit".
  4830.  
  4831. 12. Finally, a way to turn off file-task OLMs/mail in Config/Options.
  4832.     The only messages you can turn off are the "ok" notifications.  If you
  4833.     disable this option, the user will only receive OLMs/mail if there
  4834.     was a problem with test or transform.
  4835.  
  4836. 13. File TEst buffers extended to 255 characters per line.  Tests with
  4837.     output lines that wrap due to long path/file names are no longer a
  4838.     problem.
  4839.  
  4840. 14. New license required for CNet.  Contact ZenMetal for your new license.
  4841.  
  4842. 15. File-task is now passed the physical subboard number to reduce
  4843.     the chance of possible error in finding the file to be tested/transformed.
  4844.  
  4845.  
  4846. Changes/fixes for v4.24h
  4847. ------------------------
  4848. 1.  Fixed shifted GETUSER values.  Old doors will now work without changes
  4849.     to GETUSER values.
  4850. 2.  Completed AppIcon and AppMenu support for mail-task.
  4851. 3.  Mailboxes now default to open for NEWUSERS.  You may have to use
  4852.     "EA1-" and change your current users' "Mailbox Open" VDE setting to YES.
  4853.  
  4854.  
  4855. Changes/fixes for v4.24g
  4856. ------------------------
  4857.  
  4858. NOTE: CNET:BBSPORT#? files altered and moved to CNET:CONFIGS/BBSPORT#?
  4859.       You CANNOT simply move the files. You MUST run the upgrade program
  4860.       "424g" from any AmigaDOS Shell before running this version of CNet
  4861.       Amiga!
  4862.  
  4863.       Be sure to also install the newer libraries before running this
  4864.       upgrade executable.
  4865.  
  4866.       The upgrade executable can be found in the "UPDATES" drawer of this
  4867.       CNet maintenance release.
  4868.  
  4869.  
  4870. 1.  Mailscan at login now only looks in INBOX to speed up the login process.
  4871. 2.  Fixed the lost/hidden mail bug.
  4872. 3.  Mail sorting options implemented in Edit preferences (EP).  Two new
  4873.     systexts were added:
  4874.  
  4875.        systext:new/mailsort
  4876.        systext:help/mailsort
  4877.  
  4878.     The available options are:
  4879.  
  4880.        Newest last
  4881.        Newest first
  4882.        Handle/name
  4883.        Subject
  4884.  
  4885.     Please see the mailsort HELP text for more information about these
  4886.     options.
  4887.  
  4888.     Added bbstext lines 2250-2256.
  4889.  
  4890. 4.  Mail is now bounced if the recipient's mailbox is closed.
  4891.  
  4892.     ONE case overrides this action.  If the sender and recipient have the
  4893.     same account number (eg. mail to self), then the mail CANNOT be
  4894.     bounced and therefore is saved to the user's inbox.
  4895.  
  4896. 5.  Checking of selected file(s). If selection is not found (eg. moved or
  4897.     deleted) when SS or DS command is used, the user is informed of this.
  4898.  
  4899.     Change in bbstext line 381 to implement the extended verbosity.
  4900.  
  4901. 6.  Subboard sorting via "EL/Other Flags/Item sort" and the OR command
  4902.     should now be working 100%.
  4903.  
  4904. 7.  Various changes to the Config GUI to fix improperly offset checkbox
  4905.     gadgets in Protocols and Archivers windows.
  4906.  
  4907. 8.  Repair_Sub now BLANKS the Title and SubDirName (aka GO ARG) of subboards
  4908.     that are killed as it repairs your subboard structure.
  4909.  
  4910. 9.  KL command now BLANKS the Title and SubDirName (aka GO ARG) of subboards
  4911.     that are killed.
  4912.  
  4913. 10. Added three new CallHost()'s to empty.c:
  4914.  
  4915.        WriteUKeys() - write the Cnet myp->Key structure to disk.
  4916.                       See empty.c for a description of this function.
  4917.        prototype    - void WriteUKeys( void )
  4918.        returns      - none
  4919.        example:     - WriteUKeys();
  4920.        ---------------------------------------------------------------
  4921.        DoANSI()     - Send ANSI codes to the CNet port and remote user.
  4922.        protoype:    - void DoANSI(UBYTE n, UBYTE a, UBYTE b)
  4923.                          n=the type of ANSI code to be sent. eg. 'H'
  4924.                          a=the first argument to the ANSI sequence
  4925.                          b=the second argument to the ANSI sequence.
  4926.        returns:     - none
  4927.        example:     - DoANSI('H', 1, 4);
  4928.                       the above call would use the ANSI cursor position
  4929.                       code to position the cursor at line 1, column 4.
  4930.        ----------------------------------------------------------------
  4931.        DoANSIOut()  - Send single ANSI control code to the CNet port and remote.
  4932.        protoype:    - void DoANSIOut(UBYTE n)
  4933.                          n=the type of ANSI code to be sent. eg. 'K'
  4934.        returns:     - none
  4935.        example:     - DoANSIOut('K');
  4936.                       the above call would use the ANSI end-of-line
  4937.                       delete code to delete the current line including
  4938.                       the character under the cursor.
  4939.  
  4940. 11. Added feedback/newuser mail check at login for users with sysop
  4941.     maint.  Changes to bbstext lines 225-228 and new lines 2257-2260.
  4942.  
  4943. 12. Return-receipt mail fixed.
  4944.  
  4945. 13. Fixed a memory leak in mail-task that caused partial mail messages to be
  4946.     displayed in mail-task GUI.
  4947.  
  4948. 14. Device field in Config/Modems extended from 21 characters max to a
  4949.     maximum of 40 characters to support longer device names such as
  4950.     squirrelserial.device.
  4951.  
  4952. 15. (repeat of the note at the top of this changes section)
  4953.     CNET:BBSPORT#? files changed and moved to CNET:CONFIGS/BBSPORT#?
  4954.     You CAN NOT simply move the files. You MUST run the upgrade program
  4955.     "424g" from any AmigaDOS Shell before running this version of CNet Amiga! 
  4956.  
  4957.     The upgrade executable can be found in the "UPDATES" drawer of this
  4958.     CNet maintenance release.
  4959.  
  4960.  
  4961. Changes/fixes for v4.24f
  4962. ------------------------------
  4963. 1.  NOGMT arg added to NNTPGet to prevent NNTPGet from using the GMT
  4964.     keyword with servers that may not support it.
  4965.  
  4966.         eg.  NNTPGet NEW NOGMT
  4967.  
  4968. 2.  Internet email addresses with a numeric digit in them are no longer
  4969.     treated as an invalid address.
  4970.  
  4971. 3.  Local echo support added to cTelNet.  Use "mode ECHO" within cTelNet
  4972.     to toggle local echo on/off.
  4973.  
  4974. 4.  A completely re-written Configuration editor (Config) and GUIs. Multiple
  4975.     windows can be open in the same instant.  Many windows are now sizable
  4976.     and font adaptive.  ARexx control will be added to Config in the future.
  4977.  
  4978. 5.  Fixed yank-task bug that caused no messages to be yanked.
  4979.  
  4980. 6.  Fixed RexxLoadEditor bug.
  4981.  
  4982.  
  4983. Changes/fixes for v4.24e (pre-beta)
  4984. ------------------------------
  4985. 1.  CopySelf mail no longer generates two copies in SENTMAIL.
  4986.  
  4987. 2.  Moving files around in BaseX: partitions is now smarter.  The "Move to
  4988.     which partition?" prompt now defaults to the base partition with the most
  4989.     free bytes.
  4990.  
  4991. 3.  Duplicate/identical GO keywords are now filtered out for GO arg display
  4992.     when "GO <non-existent go key>" is used.
  4993.  
  4994. 4.  Related to number (3) above, the subboard number for the
  4995.     "List, :, /, or Subboard#:" prompt default to the current sub.  That
  4996.     is, the one you are moving files in.  Fixes (3) and (4) allow for easier
  4997.     cross-partition file relocation in the same subboard.
  4998.  
  4999. 5.  Door/list type subboards now fixed.  Sysop maint users can see ALL items.
  5000.     Regular users see a list only of items they can access in a sequentially
  5001.     numbered list, with no "skips" in between numbering.
  5002.  
  5003. 6.  Transpose is now a BBSMENU command in "1; Maintenance Menu" and also now
  5004.     accepts two arguments, a user account number and an access group number
  5005.     to do auto-transpose.
  5006.  
  5007.       eg. TRANSpose 1 31
  5008.  
  5009.     The above would assign account number 1 to access group 31.
  5010.  
  5011.     With auto-transpose, the only "priviledge flag" not lost is the
  5012.     "SuperUser" flag.  All other flags, limits and priviledges are set to the
  5013.     newly assigned access group defaults.
  5014.  
  5015.     If no arguments are specified, then the normal transpose is initiated.
  5016.  
  5017.     NOTE: both arguments must be specified and MUST be numeric.  No
  5018.     handle/name parsing is performed for auto-transpose.
  5019.  
  5020. 7.  Mail-task GUI no longer flashes uncontrollably when minimized.
  5021.  
  5022. 8.  Menu added to mail-task window to allow quitting of mail-task using
  5023.     Mail-Task/Quit menu.
  5024.  
  5025. 9.  Mail-task menu added to allow selection of a custom font for mail-task's
  5026.     GUI display.
  5027.  
  5028. 10. Change in BBSTEXT line 802. (see !bbstext_stock)
  5029.  
  5030. 11. Added snapshot window position to mail-task menu.
  5031.  
  5032. 12. Fixed "Originally to:" line in FOrward Mail.
  5033.  
  5034. 13. System OLMs from mail-task now use the user's time form (eg. AM/PM or
  5035.     24 hour) for OLM sending on receipt of new mail.  Changes in bbstext
  5036.     lines 193, 200, 2136, 2137, 2152, 
  5037.  
  5038. 14. User logon/logoff broadcast OLMs now use the user's time form also.  Changes
  5039.     in BBSTEXT lines 83 and 153.
  5040.  
  5041. 15. User logon/logoff broadcast OLMs are now NOT sent to the port belonging to
  5042.     the user logging off.
  5043.  
  5044.  
  5045. Changes/fixes for v4.24d (beta)
  5046. ------------------------------
  5047. 1.  Added text/menu reload from remote (RT) to maintenance section of BBSMENU
  5048.     Changes in BBSTEXT lines 1762-1764.
  5049.  
  5050. 2.  GUI display added to mail-task.  Arguments to mail-task are as follows:
  5051.  
  5052.     I=ICONIFY/S,N=NOGUI/S
  5053.  
  5054.        I/ICONIFY = tell mail-task to run with it's GUI in "menufied" mode.
  5055.                    That is, the "tools" menu of Workbench will have a
  5056.                    file-task menu and, when activated, mail-task will open it's
  5057.                    GUI. (may not yet be implemented)
  5058.  
  5059.        N/NOGUI   = Tell mail task not to use a GUI interface.  All text to
  5060.                    be output will be sent to the current output stream (ie.
  5061.                    the current CLI/Shell). (may not yet be implemented)
  5062.  
  5063.     There are 6 items of information displayed:
  5064.     
  5065.        TOTAL:   this is the number of total mails processed since mail-task
  5066.                 was started.
  5067.  
  5068.        BOUNCED: the number of mails that were bounced back to the sender
  5069.                 for various reasons, detailed in the return report. In future,
  5070.                 the bounced mail report will also be "carboned" to the sysop
  5071.                 so that he/she is aware of any problems that might be
  5072.                 immediately repairable.
  5073.                 
  5074.        LOCAL:   the number of mails saved to local users since mail-task has
  5075.                 been running.
  5076.  
  5077.        NET:     the number of combined netmail and internet email sent since
  5078.                 mail-task has been running.
  5079.  
  5080.        STATUS:  the current status of mail-task, whether idle, or processing.
  5081.  
  5082.        There is also a buffer window/listview to allow the sysop to scroll
  5083.        back and view the activities carried out my mail-task.
  5084.  
  5085.     BUTTONS:
  5086.  
  5087.        RESET DISPLAY   Clears the buffer window and all mail-task mail counters.
  5088.  
  5089.        MENUFY          (may not yet be implemented) allows you to (iconify) the
  5090.                        GUI a "Menufied" state.
  5091.  
  5092.        Quit            closes down mail-task.  Please note that your system
  5093.                        will not process any mail if mail-task is not running!
  5094.  
  5095.        CLOSE WINDOW    (may not be implemented yet) allows you to iconify
  5096.        GADGET          the mail-task GUI to an AppIcon state.
  5097.  
  5098.  
  5099. 3.  MailForward fixed and now does not let the user edit an item as it is
  5100.     forwarded.
  5101.  
  5102. 4.  Added ARexx command "reloadtext" to CNet Arexx ports CNETREXXp to allow
  5103.     Rexx scripts to force Control to reload bbstext/menu/charges, where
  5104.     "p" is the portnumber.
  5105.  
  5106. 5.  Various fixes to ARexx commands that were holding a lock on files.
  5107.     (ie. RexxLoadEditor, RexxSaveEditor, RexxCallEditor, etc,.)
  5108.  
  5109. 6.  New cnetgui.library added.  This library will expand to contain the
  5110.     functions necessary to create the CNet graphical user interfaces.
  5111.     Currently, as of v4.24d, this library contains only the function
  5112.     CNGTextWidth() which, given a string and a TextAttr structure, returns
  5113.     the width of the text string in pixels.  See cnetgui_pragmas.h and
  5114.     cnetgui.h for the function prototype(s).
  5115.  
  5116.  
  5117. Changes/fixes for v4.24a (beta)
  5118. ------------------------------
  5119. NOTE: It is unclear to some so please note that both NNTPGet and
  5120.       CtelNet have been tested and work fine with the two most often used
  5121.       Amiga TCP/IP stacks, Miami and AmiTCP.  Some sysops assumed that these
  5122.       clients would only work with AmiTCP.  This is not so.  They work with
  5123.       any TCP/IP stack that creates a "bsdsocket.library".  Note also that
  5124.       bsdsocket.library is not a physical library. That is, it does NOT exist
  5125.       on your hard disk.  It is a logical library that is created by your
  5126.       TCP stack.
  5127.  
  5128. ALSO: If you have already add pre-defined hosts to CtelNet (ie. using "AH"),
  5129.       you must run the update program called CTNCONVERT1 which is located in
  5130.       the UPDATE drawer of this distribution.
  5131.  
  5132. 1.  Added some loggable lines from NNTPGet to BBSTEXT lines 2231-2236 so
  5133.     that sysops may customize MCI/ANSI colors in output/logs..
  5134.  
  5135. 2.  Added KillHost (KH) to CtelNet - change in line 2221 of BBSTEXT.
  5136.     Also run the CTLConvert1 program found in the internet_support
  5137.     directory of DOORS.  CTelNet1 is a DOS executable that is ran from any
  5138.     CLI/Shell.
  5139.  
  5140. 3.  Added expansion lines 2222-2230 to bbstext.
  5141.  
  5142. 4.  Added some lines of NNTPGet to bbstext lines 2231-2236.
  5143.  
  5144. 5.  Line 2237 of bbstext contains the path/filename that the list of active
  5145.     newsgroups are saved to when you use the GETACTIVE switch of NNTPGet.
  5146.     Change this path/filename to change the location that the active
  5147.     newsgroup list is saved to. (default = UUNEWS:ACTIVE)
  5148.  
  5149. 5.  RUN command prompt extended to allow a command length of 60 characters.
  5150.  
  5151. 6.  Control now requires that **AT LEAST** CNET:BBSTEXT and CNET:BBSMENU exist.
  5152.     If either do not exist, control does not run.
  5153.  
  5154. 7.  Line 2238 added to bbstext to allow users with sysop maint to override
  5155.     return-receipt mail.  NOTE that due to the way that mail is handled in
  5156.     CNet/4, it is not possible to make this option a "command" as it was in
  5157.     CNet/3. If a user has asked for a return-receipt, you will be prompted
  5158.     whether to override the return-receipt via a yes/no "override
  5159.     return-receipt," prompt.  This also allow allows sysops to enable
  5160.     ALWAYS override without prompt by replacing bbstext line 2238 with the
  5161.     following text/MCI:
  5162.  
  5163.       n1User has requested a return-receipt - auto-override enabled.=1}
  5164.  
  5165. 8.  NNTPGet code altered so that it will run without a TCP/IP stack running
  5166.     but will notify/log that no stack is running and then exit.  This change
  5167.     was made to prevent NNTPGet from displaying a system requester stating
  5168.     that "AmiTCP vx.xx must be started first."
  5169.  
  5170. 9.  Fixed arg parsing for "everywhere commands" in CtelNet.
  5171.  
  5172. 10. Added MODE command to CtelNet to allow instant mode switching. To
  5173.     support this command, BBSMENU received another new section (41).
  5174.     Please see !bbsmenu_stock and add this required menu to your
  5175.     modified/current bbsmenu.
  5176.  
  5177.     Supported modes are listed in systext:menu/ctelnet_modes and the menu
  5178.     is available at the mode prompt if "?" is entered.  The user can switch
  5179.     modes as follows:
  5180.  
  5181.       Telnet> MODE
  5182.       Enter MODE command (? for help): Bin
  5183.       Negotiating binary mode with remote host.
  5184.  
  5185.     (OR)
  5186.  
  5187.       Telnet> MODE Bin
  5188.       Negotiating binary mode with remote host.
  5189.  
  5190. 11. NNTPGet modified to notify/log why a NNTP subboard was skipped during
  5191.     news transfer. (ie. SUSPENDED status set, etc,..)
  5192.  
  5193. 12. Predefined hosts are now alphabetized as they are added to CtelNet and
  5194.     are displayed in alpha order as well.
  5195.  
  5196. 13. Changes in BBSTEXT lines 753, 1144, 1145, 1174, 1198 and 1199 to correct
  5197.     improper network terminology.  "UUCP" id is now termed "MAIL-ID".
  5198.  
  5199. 14. Change bbstext line 1672 from "UUCP" to "Usenet News" for proper display
  5200.     of the old "UUCP" network affiliation in EL.
  5201.  
  5202. 15. Control display fixed to show the previously known "feedback" as "Sysop/FB"
  5203.     (ie. feedback and msgs-to-sysop are counted as "Sysop/FB mail".  The
  5204.     "mail" display of control also changed to appropriately specify "#1 mail".
  5205.  
  5206. 16. Invalid GO argument operation changed.  If a user enters a non-existant
  5207.     GO arg, the current go arguments will be parsed and any that partially
  5208.     match the user's entered GO argument will be displayed in alphabetic
  5209.     order. The user can then choose one of those, enter a NEW GO arg or press
  5210.     enter to continue where they were before entering the GO command.
  5211.  
  5212. 17. Single byte getuser shift fixed.
  5213.  
  5214. Changes/fixes for v4.24 (beta)
  5215. ------------------------------
  5216. NOTE:  Since the inception of CNet/4, a change was made to log IDs, which
  5217.        Ken pletzer did not make us (sysops & ZenMetal alike) aware of.
  5218.        Log IDs above 407 were no longer used.  Log ID 408 was previously the
  5219.        ReadGFile log ID.  No longer, ReadGFile was grouped into log ID
  5220.        405 (ReadText).  Shortly after we (ZenMetal) acquired CNet Amiga,
  5221.        I (Ray) added an "Execute" log to CNet which was given the previously
  5222.        unused log ID of 408.  This execute log will contain information
  5223.        about any DOS activity which is performed by the AmigaDOS command
  5224.        executor (for developers, the Execute() function).  This is the reason
  5225.        your old ReadGFile log contains what would seem to be extraneous
  5226.        information.  So, please change log ID 408 to "Execute" and note that
  5227.        log ID 405 is used for GFile/Text reads.
  5228.  
  5229. 1.  3.X_to_4.X was not resetting the "magic" value for mail when converting.
  5230.  
  5231. 2.  "Short Description" lines text was being partially rendered into
  5232.     the left hand border of the Config window in Limits.
  5233.  
  5234. 3.  MailVerify was still sending receipts (RPT:) when items were viewed.
  5235.  
  5236. 4.  Invalid characters ("?#/" etc.) were being allowed for handle/real
  5237.     name.
  5238.  
  5239. 5.  Version strings are now updated for bugfixed executables and partial
  5240.     releases.
  5241.  
  5242. 6.  Mail is now sorted so that new mail is at the TOP of the list during
  5243.     mailread.
  5244.  
  5245. 7.  First version of the CNetC Telnet client "CtelNet".  Requires
  5246.     additions to BBSTEXT lines 2196-
  5247.  
  5248.     CtelNet may be added to BBSMENU (as is shown in !bbsmenu_stock)
  5249.     and may also be added to text/door lists and others.
  5250.  
  5251.     Remember that CtelNet is a CNETC door. You must use MCI door type 2
  5252.     (ie. {#4cnet:doors/internet_support/ctelnet}) or choose CNetC door
  5253.     type when adding as an online door.
  5254.  
  5255.     Text/Doors:  You may specify two args here.  HOSTNAME/IP and/or PORT
  5256.  
  5257.          ie.  title: Telnet to The Gnomes Guest House
  5258.               filename: cnet:doors/internet_support/ctelnet
  5259.               args: gnomes.org 23
  5260.  
  5261.          when the user entered the number for this door item, he/she
  5262.          would telnet to gnomes.org (The Gnomes Guest House).
  5263.  
  5264.          note that the port number is OPTIONAL even if a host is specified.
  5265.          CtelNet uses port 23 as default telnet port.
  5266.  
  5267.     BBSMENU:  Args may also be specified here (everywhere command section
  5268.               example shown).
  5269.  
  5270.          ie.  TVRB       |{#2cnet:doors/internet_support/ctelnet vrb.com 23}
  5271.  
  5272.          if the user entered TVRB at any CNet prompt, he would telnet
  5273.          to vrb.com (Virtual Reality BBS).
  5274.  
  5275.          note that the port number is OPTIONAL even if a host is specified.
  5276.          CtelNet uses port 23 as default telnet port so if you are required
  5277.          to use a port number other than 23, you MUST specify the required
  5278.          telnet host port number.
  5279.  
  5280.     "RUN" command:
  5281.  
  5282.          You may run CtelNet from the CNet RUN command.  You can use any of
  5283.          the following commands..
  5284.  
  5285.          run;cnet:doors/internet_support/ctelnet
  5286.          run;cnet:doors/internet_support/ctelnet HOSTNAME
  5287.          run;cnet:doors/internet_support/ctelnet HOSTNAME PORT
  5288.  
  5289.          Once ctelnet is running (a TCP/IP stack must be running),
  5290.          use "?" to get a menu of the available options/commands.
  5291.  
  5292.          Here are the menu commands in a short summary, as seen in the
  5293.          systext:menu/ctelnet file:
  5294.  
  5295.             Quit       Close current connection if connected, and exit telnet
  5296.             Open       Connect to a remote site
  5297.             List       List of popular/pre-configured telnet sites
  5298.             Close/Bye  Close site currently connected to
  5299.             STATus     Current status of telnet environment
  5300.             Display    display operating parameters
  5301.             ?          This menu file
  5302.  
  5303.             Other BBS Commands such as WHO, CHAT, FEEDBACK, MAIL etc, are also available.
  5304.  
  5305.             MAINTENANCE COMMANDS
  5306.             AH         Add a new host to the telnet host list
  5307.             EH         Edit a currently existing host
  5308.             NT         Set/enable NetTrace file for debug output
  5309.  
  5310. 8.  Users who did not have access could see the titles of items within "List"
  5311.     type subboards.
  5312.  
  5313. 9.  New PortData extension (z->PDE) added to prevent GETUSER values
  5314.     in PortData/MainPort from shifting as new variables/structures are added.  This new structure
  5315.     will be mainly used for internet features/structures but may also be of
  5316.     use for other new/internal BBS features.  MainPort may get a similar
  5317.     extension at a later date.  Some minor getuser shifting MAY be apparent
  5318.     in this release.
  5319.  
  5320.     Note that to access this new extension, the FIRST getuser digit must be
  5321.     "3".
  5322.     
  5323.     ie.  1=PortData (struct PortData in ports.h)
  5324.          2=MainPort (struct MainPort in ports.h)
  5325.          3=PortData extension (struct PortDataExtension in ports.h)
  5326.  
  5327.     The first feature to benefit from this new data structure is the newly
  5328.     completed CNetC telnet client..  Please see ports.h and telnet.h for more
  5329.     info.
  5330.  
  5331.  
  5332. Changes/fixes for v4.23 (beta)
  5333. ------------------------------
  5334.  
  5335.     I have been notified that the "Interface Type" Setting may appear
  5336.     to have a bug but it really does not.  When a user first uses EP
  5337.     to set the interface type, a garbage value may exist in that variable
  5338.     and some invalid text may appear in that setting.  Once the user sets,
  5339.     his interface type this garbage will not appear again.  Please have your
  5340.     users (even the ones who like the "new way" of CNet/4) set their Interface
  5341.     Type to clear any garbage that may exist in this variable.
  5342.  
  5343.  
  5344. 1.  NEW MESSAGE pointers are now being saved properly (fixed bbs executable
  5345.     previously released seperately).
  5346.  
  5347. 2.  Return receipt mail now does not return a receipt when in VERIFY mode.
  5348.  
  5349. 3.  Fixed cnfingerd bug where if "skip idle ports on WHO display" was
  5350.     selected, cnfingerd did not exit and used excessive CPU cycles.
  5351.  
  5352. 4.  Fixed FILE_ID.DIZ bug that caused previous description to be imported on
  5353.     other files/items that do not contain a FILE_ID.DIZ.
  5354.  
  5355. 5.  Fixed SUPERUSER display in WHO.
  5356.  
  5357. 6.  Fixed various _plan, _plan_sq and _select3 saving to incorrect location.
  5358.  
  5359. 7.  File SHORT descriptions are now stripped of trailing newline characters
  5360.     before saving (no more blank lines between items during browse/scan).
  5361.  
  5362. 8.  Optimized mail-task saving of new mails to reduce "MailCheck" wait at
  5363.     login and speed up mail header initialization of saved mail items during
  5364.     Mail Read.
  5365.  
  5366. 9.  First incarnation of REPAIR_MAIL, a utility similar to REPAIR_SUB
  5367.     but this one repairs user mailboxes.  This utility is to be ran during
  5368.     maint hours, or any time you (the Sysop) wish, that recovers mail from
  5369.     corrupted mailboxes/folders and packs mailfiiles to reduce user wait-time
  5370.     during mail header initialization.  ie. during MailRead and "Scanning for
  5371.     new/old mail at login."  New command "RRM" added to the end of stock
  5372.     BBSMENU section "1; Maintenance Commands."
  5373.  
  5374. 10. When sending feedback, users are no longer allowed to set mail flags
  5375.     (ie. Freq, Copyself, etc,..) just before entering the editor.
  5376.  
  5377. 11. NNTP Options screen added to subboard VDE to allow configuration of NNTP
  5378.     variables.
  5379.  
  5380. 12. NNTP Subboard Type setting added to NNTP options in subboard VDE.  Don't
  5381.     forget to run the executable "VDE" in any CLI/Shell to update your system
  5382.     VDE files. Current settings for NNTP Type are:
  5383.  
  5384.      SUSPEND:     Causes NNTPGet to skip the subboard and not scan or import
  5385.                   new news from your NNTP host.
  5386.  
  5387.      FULL IMPORT: NNTPGet imports article headers and message body to your
  5388.                   system.
  5389.  
  5390.      Future Types: Connect for Body, Connect for Header/Body and
  5391.                    Mailing-List.  More on these types when they are
  5392.                    implemented.
  5393.  
  5394. 12. NNTP Max Dupes setting added to NNTP options in subboard VDE.
  5395.     NNTP Max Dupes is the number of NNTP IDs to buffer for NNTP duplicate
  5396.     message checking.  If you set this value to 200 dupes, then 200 IDs will
  5397.     be buffered.  IDs may be up to 256 characters in length so please use a
  5398.     reasonable value for Max Dupes.  Only one dupetable will be loaded at any
  5399.     instant so you don't have to worry about each dupetable taking up RAM.  A
  5400.     simple calculation:
  5401.  
  5402.         MAX RAM FOR DUPETABLE = 256*MAXDUPES
  5403.  
  5404.     Therefore, if you set 200 as a value for maxdupes, 51200 bytes (51.2k)
  5405.     of memory MAXIMUM will be used while importing NNTP messages, if the
  5406.     dupetable is full.  The buffered ids are variable length so the dupetable
  5407.     may vary in size but they will never exceed the guidlines set out in the
  5408.     MAX RAM calculation given above.
  5409.  
  5410. 12. Enforcer hit removed from NNTPGet startup.
  5411.  
  5412. 13. Changes to BBSText lines 2191-2195 for NNTP VDE support. Curly braces
  5413.     {} on lines 2193-2195 are required for future expansion of NNTP Type.
  5414.  
  5415. 14. Carrier check added to "TO:" and "CC:" prompt of mailsend.
  5416.  
  5417. 15. Feedback at login no longer allows a return receipt to be requested.
  5418.  
  5419. 16. CNet/3 to CNet/4 all-in-one conversion program completed.  Users upgrading
  5420.     from CNet/3 (3.05c or higher) only have to run ONE executable to upgrade
  5421.     to CNet v4.22.
  5422.  
  5423. 17. Completed CNet Install script (initially for CNet/3 by Bob Maple with
  5424.     previous changes by Jim Selleck) to be used with CNet/4.
  5425.  
  5426. 18. Edit Mail now saves changes.
  5427.  
  5428. 19. Mail Forward Alias re-implemented.  A single mail alias of "+" allows
  5429.     your incoming mail to be CARBON COPIED to another user or network
  5430.     address.  Note that you are currently allowed only one mail forward
  5431.     alias.  If you specify more than one, the first instance will be used.
  5432.     This will change later to alow multiple carbons.
  5433.  
  5434.     Mail Forward Alias Examples
  5435.  
  5436.       ALIAS        NAME         ADDRESS
  5437.       ============ ============ =================
  5438.       +            Ray Akey     @1:246/74
  5439.  
  5440.    ...the above alias will cause your received mail to be also sent to
  5441.    "Ray Akey@1:246/74"
  5442.  
  5443.       ALIAS        NAME         ADDRESS
  5444.       ============ ============ =================
  5445.       +            rakey        @cnetbbs.net
  5446.  
  5447.    ...the above alias will cause your received mail to be also sent to
  5448.    "rakey@cnetbbs.net"
  5449.  
  5450.       ALIAS        NAME         ADDRESS
  5451.       ============ ============ =================
  5452.       +            125
  5453.  
  5454.    ...the above alias will cause your received mail to be also sent to
  5455.    the local user with account number 125.
  5456.  
  5457. 20. File/Byte credits are no longer added or subtracted if a user has
  5458.     unlimited file/byte credits priviledges. (set unlimited setting in Edit
  5459.     Account "PRIVILEDGES" VDE).
  5460.  
  5461. 21. READ MESS TO Handle/Name fixed to include searching in network messages.
  5462.  
  5463. 22. PowerQuote feature of mail quoting does not munge message anymore.
  5464.  
  5465. 23. mail alias bbstext change in line 2139.
  5466.  
  5467. 24. A yank-task bug that arose first in Perspective's CNet v4.0, which
  5468.     caused subboards to NOT be yanked was found and fixed (thanks to Neil
  5469.     Palumbo for sitting on a dial-in port until 5am with me to hash the
  5470.     problem over. :). This bug may or may not have fixed the problem some
  5471.     sysops are having with yank CRASHING.  Please let me know if this does
  5472.     or does not remedy yank crashing problems.
  5473.  
  5474.     Also, to aid in future yank-task bug investigation, yank-task
  5475.     is now capable of being executed in a CLI/Shell and displays verbose
  5476.     information about the current yank job.  If you find yank is giving you
  5477.     a problem, "break" the currently running yank-task from any CLI/Shell and
  5478.     then run yank in a CLI/shell and observe it's output.
  5479.  
  5480.        ie. yank-task
  5481.  
  5482.     for extended verbosity, use:
  5483.  
  5484.        yank-task 1
  5485.  
  5486.  
  5487.     3rd party door coders:  DO NOT assume that physical subboard 0
  5488.     is the ROOT (ie. main) subboard parent.  To find the root subboard Scan
  5489.     the subboard list by accessing myp->Subboard[x].  The root subboard/object
  5490.     is designated by bit 64 of the Marker variable being SET.  ie:
  5491.  
  5492.          if(myp->Subboard[x].Marker & 64)
  5493.             {
  5494.             /* first subboard in root/main list found */
  5495.             printf("Found first object in main list: %s\n", myp->Subboard[x].Title);
  5496.             }
  5497.  
  5498. 25. cnfingerd was not creating directory systext:cnfingerd if it did not
  5499.     exist.
  5500.  
  5501.  
  5502. Changes/fixes for v4.22 (beta)
  5503. ------------------------------
  5504.    NOTE: You ** MUST RUN UUCPREPAIR ** before using this version of CNet
  5505.          Amiga.  Most people having problems with mail receipt is due to the
  5506.          UUCP ID being one character too long and UUCPRepair has been designed
  5507.          to trap and repair this case.  You, the sysop, will be prompted to
  5508.          verify the new UUCP ID to be used.  Many users may not have this
  5509.          problem but those with long names (last names) will most certainly
  5510.          be affected.  You can either run UUCPRepair before installing
  5511.          this version or you may run it after installiation, as long as it
  5512.          is ran ASAP.  UUCPRepair can be used at any time and will not
  5513.          cause any problems if ran more than once.  If fact, we recommend
  5514.          that it be used MONTHLY to check and repair any invalid UUCP IDs.
  5515.  
  5516.    Coders: There exists a small mismatch in the headers for NewMailFolder
  5517.            (in mail.h) and KeyElement4 (in users.h) where the lengths
  5518.            are 10 and 11 respectively.  Please assume a length of **10**
  5519.            for NewMailFolder.OwnerID and UserData.UUCP where the actual
  5520.            UUCP ID is 9 bytes in length terminated with a single NULL (\0)
  5521.            byte.
  5522.  
  5523. 1.  vde files are no longer included in the CNet distributions.  From now on,
  5524.     you must use the AmigaDOS executable called "VDE" to create your system
  5525.     VDE files.
  5526.  
  5527.     Simply enter the command CNET:VDE in any CLI/Shell to have your VDE files
  5528.     created.  Make sure you first copy the "VDE" command from this distribution
  5529.     archive to your CNET: directory!
  5530.  
  5531. 2.  Fixed bug in ranges using MESS BY "<name or handle>" where only messages
  5532.     written by LOCAL users were recognized even if network messages contained
  5533.     a user named <name or handle>.
  5534.  
  5535. 3.  Arj fingerprint in Toss changed to 60 ea 2c 00 1e as the old fingerprint
  5536.     wasn't recognizing all arj archives.
  5537.  
  5538. 4.  ARexx SETMAILSUBJECT is once again working.
  5539.  
  5540. 5.  The user subboard/message Interface is now configurable between the old
  5541.     3.x style and new 4.x style in Edit Preferences (EP).
  5542.  
  5543.     If CNet/3 type is chosen, CNet acts like 3.x in that entering a number X
  5544.     while in a subboard causes the user to be placed in subboard X in the
  5545.     current tree/level.  Users must use Rx (where x is an item number) to read
  5546.     a post/item.
  5547.  
  5548.     if CNet/4 type is chosen, CNet uses the new format in that by entering
  5549.     a number X, CNet will display to the user item X in the current subboard.
  5550.     Users will be required to use /x (where x is a subboard number in the
  5551.     current subboard tree/level) to move to a new/different subboard.
  5552.  
  5553.     To add this capability, changes have also been made to BBSTEXT lines 1173,
  5554.     1175, 1184, 1187-1189, 1192 and 1202.  No BBSMENU changes are required.
  5555.     See the included !bbstext_stock for an example of the new/changed lines.
  5556.     The file systext:new/interface is a file containing an explanation of
  5557.     this feature of CNet.
  5558.  
  5559.     NOTE: If the file SYSTEXT:NEW/INTERFACE does not exist, the user will not
  5560.           be asked for an interface preference and your system will not
  5561.           sport a 3.x emulation mode.  All users will be forced to use the 4.x
  5562.           style message/subboard interface.
  5563.  
  5564. 6.  Fixed "Reply to <handle/name>?" in netmail carbon copied from the base.
  5565.  
  5566. 7.  Added "PowerQuote" to mail quoting.  If a user selects "QUOTE=YES" in
  5567.     the mail flags just before entering the editor to reply to a mail
  5568.     item, PowerQuoting is used.
  5569.  
  5570.     CNet's PowerQuoting features a "smart" quoting system which will NOT
  5571.     prepend XX> to already quoted lines.  Therefore, you don't end up with a
  5572.     bunch of XX> XX> XX> or XX>XX>XX> text filling up the editor.  Only
  5573.     previously unquoted lines will receive the "quote specifiers" which
  5574.     are made up of either the first two letters of a user's name/handle
  5575.     or the first initial of the user's first and last name in his
  5576.     handle or real name.
  5577.  
  5578.     PowerQuoting does word wrapping before adding the "quote specifiers"
  5579.     therefore reducing text fragmentation.
  5580.  
  5581.     PowerQuoting will also be added to CNet's regular Line/VisEd quoting
  5582.     (.Q and CTRL-X Q respectively) at a later date.
  5583.  
  5584. 8.  "Superuser" flag was not being shown properly in the WHO display.
  5585.  
  5586. 9.  A finger daemon is now included with CNet Amiga.  To use this finger
  5587.     daemon, you must configure your inetd to spawn the CNet finger daemon.
  5588.     We have not yet looked at Miami but for AmiTCP, you need only do the
  5589.     following:
  5590.    
  5591.     - edit amitcp:db/inetd.conf
  5592.     - Delete the current "finger" line from that file.
  5593.     - replace it with the following finger daemon command:
  5594.     
  5595.        finger    stream tcp dos bin - CNet:cnfingerd
  5596.  
  5597.     If you don't keep your internet doors/support files in CNET:,
  5598.     please remember to change the "CNET:" path, in the cnfingerd
  5599.     command above, to the proper path where your cnfingerd resides.
  5600.  
  5601.     Miami and other TCP/IP stack users, please consult the related
  5602.     documentation, for the software you are using to connect to your
  5603.     ISP, for the proper inetd configuration details.
  5604.  
  5605. 10. BBSTEXT changes: lines 2166-2189 added
  5606.  
  5607. 11. Bug where CNet "lost" a user when his access was changed due to low
  5608.     balance fixed.
  5609.  
  5610. Changes/fixes for v4.21 (beta)
  5611. -------------------------------
  5612.  
  5613. ***** You must run the maintenance upgrade program "421" in any DOS CLI/Shell.
  5614.       This must be done with CNet completely shut down!  421 is a
  5615.       fix to upgrade some mail header variables which needed expansion
  5616.       when the subboard structures were changes but didn't get this attention
  5617.       at that time.  (3rd party coders: the "UniqueBase" variable of
  5618.       MailHeader4 has changed from 21 bytes to 75 bytes in length)
  5619.  
  5620. 1.  New CNetC door "UUCPRepair" for checking if any UUCP IDs are out of spec.
  5621.     When ran as a CNetC Door, will scan your users' UUCP IDs and generate
  5622.     error information about the invalid UUCP id and then prompt you for a new
  5623.     UUCP id for each user with an invalid UUCP id.
  5624.  
  5625.     Invalid UUCP ids can result in failure to receive mail and other system
  5626.     messages so, be sure to run this door.
  5627.  
  5628. 2.  Transpose not saving changes made to user accounts during transpose fixed.
  5629.  
  5630. 3.  Using ranges when using SCAN (ie. S2-) during mail read was not working
  5631.     properly.  Fixed.
  5632.  
  5633. 4.  MailRead now should not produce "item corrupted" messages unless a mail
  5634.     item is truly corrupt.
  5635.  
  5636. 5.  "GO MAIN" and using a colon (:) to go to main menu from within subboards
  5637.     now work correctly.
  5638.  
  5639. 6.  CNet now has a dedicated background process for testing and transforming
  5640.     files immediately after users upload files.  In EL, under "File Testing"
  5641.     and "File transform" there is now a "Background" setting in addition
  5642.     to the previous, AMaint, Immediate, and None settings.  If you get
  5643.     garbage and not "BackGround" in your VDE display, then make sure you
  5644.     have updated your BBSTEXT to include the new text in the newest
  5645.     !stock_bbstext..  When someone uploads files to your system, the
  5646.     background test transform will occur immediately without prompt, if you
  5647.     have set the subboard for background test/transform.  If someone enters
  5648.     "TE" or "TR" and have access to those commands, they will be given a
  5649.     choice whether test/transform is done by the background file-server
  5650.     (file-task) or to perform and output test/transform results immediately.
  5651.  
  5652.     file-task should be located in or copied to your root CNET: directory.
  5653.  
  5654.     NOTE: even if you do not wish to have background processing of tests and
  5655.           transforms, you should EL all subboards and verify that your
  5656.           File test and file transform settings are correct.
  5657.           We noticed that some of our Aminet mirror subboards were being
  5658.           transformed/tested even though they were set to NONE. The values
  5659.           have shifted slightly internally so unless you want subboards,
  5660.           that were not supposed to have test/transform enabled, to be
  5661.           tested/tx'd at amaint, be sure to EL all subboards.  Don't forget
  5662.           that you can mass EL by using EL x-y to edit groups of subboards..
  5663.  
  5664. 7.  Mail-read expanded to notify the user and re-read the list of mail items
  5665.     when new mails are received if the user is currently reading his mail.
  5666.     Be aware that this won't happen if they are sitting at the mail-read
  5667.     prompt but if they SCAN, read, edit or perform any command, their mail
  5668.     item list will be updated.  This is checked before AND after the mail-read
  5669.     prompt is displayed.  Later, it will be expanded to update even if the user
  5670.     is sitting at the prompt, with no activity..
  5671.  
  5672. 8.  Fixed bugs where ports were not closing if a user was dumped while
  5673.     "close port?" was set and, closing a port while a user was online
  5674.     dumped the user but the port did not close.
  5675.  
  5676. 9.  Mail-bouncing re-implemented in mail-task. If a mail cannot be delivered,
  5677.     the originating user's message will be returned with an explanation as to
  5678.     why the message could not be delivered.
  5679.  
  5680. 10. DIZ ADD now implemented.  The format for DIZ extraction and ADD is as
  5681.     follows:
  5682.  
  5683.     THE DIZ EXTRACT COMMAND
  5684.     =======================
  5685.       an example for LHA:
  5686.  
  5687.          lha x %s %s
  5688.  
  5689.       for programs capable of displaying FILE_ID.DIZ to an amigados shell:
  5690.  
  5691.          DIZ_utility >FILE_ID.DIZ %s
  5692.  
  5693.       In the above (and in ALL diz extract commands in config/archivers),
  5694.  
  5695.       - the first %s is replaced by the full path/filename of the file
  5696.         that was uploaded or adopted.
  5697.       - the second %s is replaced by the actual text "FILE_ID.DIZ"
  5698.       - all extraction/processing occurs in a dtempX directory in the
  5699.         directory specified in the "Arc Examine Temp" path in config/paths.
  5700.         That is, CNet will change directory (CD) to the dtempX directory
  5701.         before executing your extract command.  The 'X' in dtempX is replaced
  5702.         by the current port number.  ie. If RAM: is set as your arc examine
  5703.         temp and you have just uploaded a file on port 1, DIZ processing will
  5704.         occur in "ram:dtemp1/".
  5705.       - For DIZ processing utilities that are capable of redirecting their
  5706.         output directly to an amigados shell/cli, you can use the command
  5707.         "DIZ_EXTRACT_PROGRAM >FILE_ID.DIZ %s" where DIZ_EXTRACT_PROGRAM
  5708.         is the actual path/filename of the DIZ extract utility. In this case,
  5709.         the second %s, as noted above, can be left out.
  5710.  
  5711.     THE DIZ ADD FORMAT
  5712.     ==================
  5713.     In config/archivers is a DIZ ADD command string.  In this string you
  5714.     place the command used to add a FILE_ID.DIZ description to the archive
  5715.     being described.  By definition, this is where you put the command used
  5716.     to add a FILE_ID.DIZ to the file currently being described.
  5717.  
  5718.     An example for LHA (others are similar and the %s's mean the same thing)
  5719.  
  5720.     DIZ ADD FORMAT
  5721.     ==============
  5722.       dh0:c/lha r %s %s
  5723.  
  5724.     OR
  5725.  
  5726.       dh0:c/lha r %s FILE_ID.DIZ
  5727.  
  5728.     The FIRST %s is replaced by the full path and filename of the file
  5729.     that a FILE_ID.DIZ is being added to.
  5730.  
  5731.     The SECOND %s is replaced internally with the text FILE_ID.DIZ and may
  5732.     be ignored if you use the second example.
  5733.  
  5734. 11. Mail that was/is marked as URGENT/HIGHPRI is now reset to regular priority
  5735.     when it has been read.
  5736.  
  5737. 12. Mail-task has been updated to use true file-notification.  Instead of
  5738.     checking to see if mail has been filed every 10 seconds, it only scans
  5739.     mail:cnetoutbox when a new item has been filed.  This does 2 things:
  5740.  
  5741.      1) reduces CPU time during idle periods where no mail whatsoever
  5742.         is received.  There no need for file-system activity during these
  5743.         periods.
  5744.      2) provides IMMEDIATE delivery of mail when received.
  5745.  
  5746. 13. Some minor code fixes in mail-task that may have caused mail, addressed
  5747.     to "SYSOP", meant for the msgs-to-sysop folder to be saved to the sysop
  5748.     feedback folder instead.  Don't forget the command "VS" to view messages
  5749.     addressed to "SYSOP."  The VS command is the only SYSOP mail command that
  5750.     doesn't exit if the msgs-to-sysop folder is empty.  This allows you to
  5751.     change folders and view newuser and feedback folders interactively.
  5752.  
  5753.  
  5754. Changes/fixes for v4.2 (beta)
  5755. -------------------------------
  5756. 1.  Copies of mail placed in SENTMAIL are no longer flagged as "new" mail.
  5757.  
  5758. 2.  An invalid GO argument now displays the text in "systext:menu/go" and
  5759.     prompts CNet to ask the user if they would like to see a list of valid GO
  5760.     arguments for objects/areas that they have access to (changes to BBSTEXT
  5761.     lines 336 and 339)
  5762.  
  5763. 3.  ReadArgs template to toss was missing /S so PKTONLY arg returned "bad
  5764.     arguments.  Fixed.
  5765.  
  5766. 4.  Short description lines expanded to 2 characters in config/limits.
  5767.     Note the max of 16 lines.  Be aware that most file_id.diz processors
  5768.     only support 12 lines.
  5769. 5.  DRop/JOin outside of subboards fixed.
  5770.  
  5771. 6.  Cron bug fixed where the invoke type (ie. Immedite-UDump etc,.) could
  5772.     not be changed after an event was added/saved.  Requires the newer
  5773.     cnet.library included in this beta package.
  5774.  
  5775. 7.  Killing of CopySelf mail (saved from the date of this beta install forward)
  5776.     will no longer be deducted from the System Activity Monitor (SAM).  Please
  5777.     note that CURRENTLY saved SentMail is not affected by this fix so your mail
  5778.     counts may be slightly wrong until all previous items in user "sentmail"
  5779.     folders are killed.  That is, copyself mail saved previous to your
  5780.     installing of this beta will still be deducted from the SAM.  Please
  5781.     consider running the COUNT maintenance door when you run amaint to correct
  5782.     the SAM variable(s) until you are fairly sure all old sentmail is killed.
  5783.  
  5784. 8.  Upload resume fixed.
  5785.  
  5786. 9.  Subboard VDE problem with "Other defaults" fixed.
  5787.  
  5788. 10. FIRST INCARNATION OF "NNTPGET", the new direct NNTP usenet news
  5789.     import utility for CNet/4.  Please note that for this first release
  5790.     if you do not use the "NEW" argument, NNTPGet WILL NOT get any news
  5791.     from your ISP.  The NEW argument is, for the time being, REQUIRED.
  5792.     When the SINCE argument is implemented, one of NEW, SINCE or GETACTIVE
  5793.     will be required, but not all at the same time.  Please read the following
  5794.     IN ENTIRETY to avoid configuration problems.
  5795.  
  5796.     NNTPGet currently requires AmiTCP/IP.  It may also work with Miami and/or
  5797.     MultiLink but this has not been verified.  If someone would please let
  5798.     me know about the latter two, it would be much appreciated and if it
  5799.     does not work with those, I will look into adding support for those
  5800.     TCP stacks..
  5801.  
  5802.     NNTPGet is designed to directly import usenet news items directly
  5803.     into your CNet message base, from your Internet Service Provider.
  5804.  
  5805.     Before you run NNTPGet, there are a few things to note:
  5806.  
  5807.     i)  The "Go Keyword/Arg" for the usenet/UUCP newsgroup in your
  5808.         subboard EL must be the exact name of the newsgroup as found
  5809.         in the list of newsgroups supplied by your ISP.  This list can be
  5810.         retrived by NNTPGet and will be explained later.
  5811.  
  5812.     ii) The "Part0/CD/Net" has a few restrictions if you are using
  5813.         NNTPPost (which will later be replaced with another ZenMetal
  5814.         CNet support utility).  If you are going to use NNTPPost
  5815.         to post usenet news from your system, you will need to create an
  5816.         assign of UUNEWS: which will be the base path that articles will
  5817.         be placed when they are received.
  5818.  
  5819.     EXAMPLE:
  5820.  
  5821.         NEWSGROUP NAME AS FOUND IN THE ACTIVE NEWSGROUPS LIST:
  5822.  
  5823.                   comp.sys.amiga.programmer
  5824.  
  5825.         IN CNET SUBBOARD EL:
  5826.  
  5827.                   TITLE: csa.programmer (you can use anything you want here)
  5828.  
  5829.           DATA DIR PATH: Base0:csa.programmer (again, use any path you
  5830.                                                need for the cnet data files)
  5831.  
  5832.            PART0/CD/NET: uunews:comp/sys/amiga/programmer
  5833.  
  5834.         GO KEYWORD/ARG : comp.sys.amiga.programmer
  5835.  
  5836.                                ****OR****
  5837.  
  5838.                          comp/sys/amiga/programmer
  5839.  
  5840.                 NETWORK: UUCP
  5841.  
  5842.         ... all other subboard VDE option are at your discretion.
  5843.  
  5844.     NNTPGet accepts some command line arguments when it is ran:
  5845.  
  5846.            N=NNTPSERVER/K,P=NNTPPORT/K,N=NEW/S,I=SINCE/K,A=GETACTIVE/S
  5847.  
  5848.     Explanation of arguments (all optional):
  5849.  
  5850.            NNTPSERVER:  This is the name of the NNTP server for your ISP.
  5851.                         for example, my ISP has a domain of netrover.com
  5852.                         and their NNTP server has a hostname of
  5853.                         NEWS.NETROVER.COM.
  5854.                         In this case, I use:  nntpget n=news.netrover.com
  5855.                         Please contact your ISP to find out it's news
  5856.                         server's hostname.
  5857.  
  5858.             NNTPPORT:   Defaults to 119 which is the usual NNTP news port
  5859.                         but may be used if your ISP uses another port number
  5860.                         for security reasons.
  5861.  
  5862.  
  5863.                  NEW:   switch to tell NNTPGet to get only new news since
  5864.                         your last session.  If you have not ever done a news
  5865.                         import using NNTPGet, it will get all new news since
  5866.                         the last 30 days.
  5867.  
  5868.                SINCE:   (not yet implemented) specify a date string and
  5869.                         NNTPGet will get only the news posted since that date.
  5870.  
  5871.            GETACTIVE:   tells NNTPGet to receive the list of currently
  5872.                         available newsgroups from your ISP.  It is stored
  5873.                         as UUNEWS:ACTIVE so be sure to assign UUNEWS:
  5874.                         somewhere on your system.  Most UUCP/NNTP utilities
  5875.                         use this directory to save news in a heirarchical
  5876.                         format (aka NESTED DIRECTORIES - each directory
  5877.                         used as a newsgroup with news items within) for
  5878.                         incoming news. The ACTIVE file is in ASCII format and
  5879.                         can be read with any text reader or editor.
  5880.  
  5881.     If you do not specify an NNTPSERVER, NNTPGet will look for the environment
  5882.     variable NNTPSERVER.  So you may set this to assure that NNTPGet uses
  5883.     this as a default by entering "SETENV NNTPSERVER <NNTP_SERVER_NAME>"
  5884.     and then "copy env:NNTPSERVER ENVARC:" to assure that it is saved
  5885.     and set when your system is reset/rebooted.
  5886.  
  5887.  
  5888. Changes/fixes for v4.13b (beta)
  5889. -------------------------------
  5890. 1. SENTMAIL folder and "CopySelf" are now re-implemented.  mail-task will
  5891.    generate a "copy" of the sent email/netmail in the user's SENTMAIL
  5892.    folder if the CopySelf flag is enabled when writing a new mail.
  5893. 2. "Last Msg Serial" in subboard VDE expanded to allow 9 digits.
  5894. 3. various fixes for UUNEWS and Toss/ifido importing of items with long
  5895.    area/newsgroup subdirnames.
  5896. 4. The entry in the Logs section of Config,  titled "MaintLog" was changed to
  5897.    "ReadLog".  Still retains a log ID of 216.
  5898. 5. New "RL" (ReadLog) menu command added to the maintenance menu section of
  5899.    BBSMENU.  This allows you to create/alias your own unique LOG reading
  5900.    commands of simply enter "RL" and you are prompted for a log name to read.
  5901.    Note that the path to the log is not entered, only the actual filename
  5902.    of the log.  CNet assumes a path of "sysdata:log/".
  5903.  
  5904.    An example of creating a log alias has already been provided in BBSMENU.
  5905.    Look for the alias "LA" in !BBSMENU_STOCK which is defined as follows:
  5906.  
  5907.       LA~RL amaint
  5908.  
  5909. 6. Toss, IFido and the mail server now filter MCI from Subject and From/To
  5910.    fields.
  5911.  
  5912. 7. Last Message Serial number in "EL" VDE is no longer a large 9 digit
  5913.    number (time stamp).  QWK requires that this number be 8 digits or less.
  5914.    (this is the reason QWK replies were being filed as posts)  To avoid
  5915.    QWK/YANK problems in the future, please do a GLOBAL "EL" and set this
  5916.    number to some median number such as 4000 or thereabouts for all
  5917.    subboards.  Do not be concerned if there is currently a 9 digit number
  5918.    in that field, reset it to some 4 digit number anyways.  CNet message
  5919.    filing wil set the "Message ID" to be this number +1 and then increment
  5920.    it each time a message is saved.  If you delete all items in a subboard,
  5921.    reset this Last Message Serial to 0 and CNet will begin message numbering
  5922.    according to that number.  Be aware that QWK uses the Message ID number 
  5923.    when filing responses, so try not to change it often or at all
  5924.    once reset, or posts/responses may not get linked properly.
  5925.  
  5926. 8. Repair_sub is now working again and must be located in your cnet:doors/
  5927.    directory.
  5928.  
  5929. 9. Cron now has an option to run and/or close the port, that an event is
  5930.    destined to execute on, at the time of event execution.
  5931.  
  5932.    There are three options:
  5933.  
  5934.       IGNORE:    If the port is loaded already, the event runs as scheduled.
  5935.                  If the port is not loaded, the event is skipped,
  5936.  
  5937.       RUN:       If the port is loaded, the event runs as scheduled.
  5938.                  If the port is not loaded, control loads the port, the event
  5939.                  is executed and on completion of the event, the port remains
  5940.                  loaded.
  5941.  
  5942.       RUN/CLOSE: If the port is loaded, the event runs as scheduled.
  5943.                  If the port is not loaded, control loads the port, the event
  5944.                  is executed and on completion of the event, the port is
  5945.                  closed.
  5946.  
  5947.       **NOTE**:  If RUN/CLOSE is enabled and the port is already loaded
  5948.                  at the time of event execution, the port  will still be closed
  5949.                  after the event executes.
  5950.  
  5951. 10. Changed minutes.tenths-of-minutes display of next pending event (in
  5952.     SYSINFO window of control) to hours, minutes display.
  5953.  
  5954. 11. Repair_sub now allows a "renumber" argument to force mandatory renumbering
  5955.     of MessageIDs.  Try this method if your yanks/QWKs are failing (ie. no
  5956.     messages yanked) and you know there are new messages.  Also, please do
  5957.     not use the "renumber" argument too often as messages from old QWK packets
  5958.     that users have yanked previously to your renumbering may not get filed
  5959.     properly and could be filed as new posts rather than responses.  This
  5960.     argument should be used only as a last resort (ie. if your
  5961.     "LasMessageSerial" for any subboard exceeds 8 digits).
  5962.  
  5963. 12. mail-aliased "account ranges" no longer include deleted accounts
  5964.     (which were denoted by a Handle/RealName of '!')
  5965.  
  5966. 13. mail-alias [K]ill command was TOO powerful.  Prompts for Name and
  5967.     address added to Kill Alias command.  Alias killing is based only on the
  5968.     "filled-in" prompts.  That is, if you leave one or two of the prompts
  5969.     blank, only aliases with fields matching the remaining information
  5970.     are killed.  You can still mass kill aliases by entering only the 
  5971.     "Alias" part of the mail-alias.  If all three are left blank, NO
  5972.     mail-aliases are killed.
  5973.  
  5974. 14. PKTONLY argument added to toss which can be used to quickly process
  5975.     netmail and areafix requests only.  This can be used to quickly respond
  5976.     to areafix requests from remote systems by using the syntax
  5977.     
  5978.        TOSS PKTONLY
  5979.  
  5980.     in your TURNAROUND command for trapdoor and other mailers that support
  5981.     this style of quick answering of areafix and netmail messages while the
  5982.     remote system is still connected.  There would be no need to wait for
  5983.     callback to get replies to your areafix request as they can be now
  5984.     processed and answered immediately.
  5985.  
  5986. 15. Fingerprint added to Toss for decompression of packets compressed
  5987.     with ARJ.
  5988.  
  5989.     Don't forget to add .ARJ to your ARCHIVERS section of config if you wish
  5990.     to support ARJ.  Be sure to use "ARJ e %s" for the Extract Format.
  5991.  
  5992.     NOTE: a future beta/release of CNet will have the capability for you to
  5993.          define your own archiver "fingerprints" in CONFIG/ARCHIVERS so you
  5994.          don't have to wait for new versions of CNet to support newer/popular
  5995.          compression formats..
  5996.  
  5997. 16. AMaint sports four new arguments/options that are specified on the command
  5998.     line of cron, in your BBSMENU or wherever amaint is executed from:
  5999.  
  6000.     NOUSERPURGE:   tells amaint not to do a user purge
  6001.  
  6002.     NOBASEPURGE:   tells amaint not to do a message/file area purge nor
  6003.                    adopt orphans (if configured to adopt orphans at maint)
  6004.  
  6005.     NOBBSPURGE:    tells amaint not to weed old items in the BBSLIST.
  6006.  
  6007.     CURRENTDATE:   tells amaint to use the CURRENT DATE and TIME for the
  6008.                    "Post Date" of newly adopted items.  If this option is not
  6009.                    present, amaint uses the AmigaDOS date of the file being
  6010.                    adopted.
  6011.  
  6012.     To set an amaint event using any of these, use the following example
  6013.     as a guide for the COMMAND in your CRON configuration for amaint:
  6014.  
  6015.                  cnet:doors/amaint nouserpurge nobbspurge
  6016.  
  6017.     NOTE: These args cannot be specified at CNET prompts.  They must be
  6018.           added in the CRON/BBSMENU command.
  6019.  
  6020. 17. AMaint now looks for descriptions in the files.bbs file specified on line
  6021.     634 of BBSTEXT when a new file is adopted by amaint. If there is a
  6022.     %s in line 634, AMaint will (as usual) look in the current subboard
  6023.     for the specified files.bbs file or, if there is no %s in line 634,
  6024.     AMaint will use the discrete path specified (ie. "DOWNS:files.bbs"
  6025.     rather than "%sfiles.bbs") for those who like to keep their files.bbs
  6026.     descriptions in a single location/file.
  6027.  
  6028. 18. AMaint now searches newly adopted files for an existent FILE_ID.DIZ and
  6029.     uses that description, rather than the files.bbs description, if present.
  6030.  
  6031. 19. FILE_ID.DIZ processing is *partially* functioning as of this beta.
  6032.     Only the EXTRACTION of DIZ descriptions is functioning at this time.
  6033.  
  6034.     Other options are in progress but many people have voiced their concerns
  6035.     about getting fixes for current bugs so I felt that at least having the
  6036.     extraction of DIZ working at this point, will suffice until the next beta.
  6037.  
  6038.     Please make sure you have a valid command configured for your "DIZ
  6039.     Extract" command in config/archivers.
  6040.  
  6041.       an example for LHA:
  6042.  
  6043.          lha x %s %s
  6044.  
  6045.       for programs capable of displaying FILE_ID.DIZ to an amigados shell:
  6046.  
  6047.          DIZ_utility >FILE_ID.DIZ %s
  6048.  
  6049.       In the above (and in ALL diz extract commands in config/archivers),
  6050.  
  6051.       - the first %s is replaced by the full path/filename of the file
  6052.         that was uploaded or adopted.
  6053.       - the second %s is replaced by the actual text "FILE_ID.DIZ"
  6054.       - all extraction/processing occurs in a dtempX directory in the
  6055.         directory specified in the "Arc Examine Temp" path in config/paths.
  6056.         That is, CNet will change directory (CD) to the dtempX directory
  6057.         before executing your extract command.  The 'X' in dtempX is replaced
  6058.         by the current port number.  ie. If RAM: is set as your arc examine
  6059.         temp and you have just uploaded a file on port 1, DIZ processing will
  6060.         occur in "ram:dtemp1/".
  6061.       - For DIZ processing utilities that are capable of redirecting their
  6062.         output directly to an amigados shell/cli, you can use the command
  6063.         "DIZ_EXTRACT_PROGRAM >FILE_ID.DIZ %s" where DIZ_EXTRACT_PROGRAM
  6064.         is the actual path/filename of the DIZ extract utility. In this case,
  6065.         the second %s, as noted above, can be left out.
  6066.  
  6067. 20. Transpose bug fixed where new privs were not binding after a transpose.
  6068.  
  6069. 21. BBSTEXT line 2143 is now used to set file patterns for files that are
  6070.     NOT to be auto-adopted at maint. The pattern is any AmigaDOS wildcard
  6071.     pattern.  Each pattern must be separated by SPACES.  TABs are not
  6072.     allowed on this line, nor is MCI.
  6073.  
  6074.       EXAMPLE AMIGADOS FILE PATTERNS:
  6075.  
  6076.       #?.readme              means not to adopt files with an extension of
  6077.                              ".readme"
  6078.       file.bbs               means not to adopt any file called "files.bbs"
  6079.       (#?.lha|#?.zip)        means NOT to adopt lha and zip files
  6080.       ~(#?.lha|#?.zip)       means to only adopt lha and zip files
  6081.  
  6082.  
  6083.       The default in v4.13b's bbstext is as follows:
  6084.  
  6085.          #?.readme #?.ads files.bbs
  6086.  
  6087.       using the default noted above keeps amaint from auto-adopting .readme,
  6088.       .ads and files.bbs files.
  6089.  
  6090.  
  6091. Changes/fixes for v4.13a (beta)
  6092. -------------------------------
  6093. 1. limits in bbsechos were not expanded in v4.13.  You must run the upgrade
  6094.    utility "413a" to convert cnet:bbsechos to cnet:bbsechos4.
  6095. 2. Longer event "command" strings caused the stack to be corrupted due
  6096.    to some "lingering" CNet 4.0 defines.  Fixed.
  6097.  
  6098. (no BBSMENU/TEXT changes for this small bug-fix release)
  6099.  
  6100.  
  6101.  
  6102. Changes/fixes for v4.13 (beta)
  6103. -------------------------------
  6104. NOTE: You must be sure that all ports & control are not running and then
  6105.       run the maintenance program "413" before using this version.  The
  6106.       413 upgrade executable will convert your sysdata:subboards3 to the new
  6107.       sysdata:subboards4 format.  Your subboards3 file will not be deleted
  6108.       so that you may still run older CNet releases if you need to.
  6109.  
  6110.       Also note that some BBSTEXT/MENU changes were made for this release.
  6111.       Be sure to use a text-changer or text "diffing" program to find
  6112.       and change/update your bbstext/menu.
  6113.  
  6114. 1.  Mail Aliases are once again implemented.
  6115.     Multiple mail aliases are possible for a single "Alias" to support
  6116.     "group mail" so you may define a single alias for many users by
  6117.     entering their names one at a time, but using the same "alias" when
  6118.     prompted for an alias.  Also, you may use aliases for local (ie. belonging
  6119.     to the same system) users as well as network addresses by simply NOT
  6120.     specifying an "address" but only the user Name and Alias.  Note that
  6121.     ALL aliases still pass through access filters so, just because a user has
  6122.     a "network address" defined in one of his/her aliases does not mean that
  6123.     the mail will be sent.  If the user does not have network access, then
  6124.     the user's network mail alias will not be valid.
  6125.  
  6126. 2.  Only "Immediate-NoDump" events were working in v4.12d.  Fixed.  All types
  6127.     should now work and the "Next Event" field of Control's System Info
  6128.     screen should display the time of the next valid event.
  6129.  
  6130. 3.  OLM's to maint users stating feedback was received, were actually New user
  6131.     applications and vice versa. Fixed.
  6132.  
  6133. 4.  NMAIL to new users sometimes went to NEWUSER (VN) and the new user
  6134.     application was lost.  Fixed.
  6135.  
  6136. 5.  MailSend (MS) now accepts a valid CNet RANGE of accounts.  For example,
  6137.     Entering "MS 1-50,75" now allows sending mail to accounts 1 through 50
  6138.     including account 75. NOTE that you cannot mix and match account ranges
  6139.     with network addresses and user handles/names.  For account ranges to
  6140.     work, you must use only valid NUMERICAL account ranges.
  6141.  
  6142. 6.  Related to number (5.) above, local Account ranges are now allowed in mail
  6143.     aliases.  To define a local group of users in a mail alias, simply set your
  6144.     alias up similar to the following example: 
  6145.  
  6146.       ALIAS        NAME         ADDRESS
  6147.       ============ ============ =============
  6148.       Range1       1-50,75      [leave blank]
  6149.  
  6150.    Therefore, entering "MS range1" would send mail to accounts 1 through 50,
  6151.    while including account 75.
  6152.  
  6153. 7.  Subboard Unique Dirname and paths have been expanded to 3x the previous
  6154.     length, with unique dirname having a new maximum of 75 characters rather
  6155.     than the previous 21 characters.  Data path has been expanded to 95
  6156.     characters from it's previous 40 character limit.
  6157.  
  6158. 8.  Added "VS" command to View Sysop Mail which are mail items in the
  6159.     Msgs-To-Sysop folder of the SYSOP mail directory)  The Msgs-To-Sysop
  6160.     folder contains messages that are simply addressed to "SYSOP".  These
  6161.     SYSOP messages are usually carbon copied from network echos when unsavvy
  6162.     users address their messages to "SYSOP".  They are placed in Msgs-To-Sysop
  6163.     to reduce mailbox clutter in your (sysops) real mail folders. However, CNet
  6164.     DOES support LOCAL mailing to "SYSOP" and these mails are also placed in
  6165.     Msgs-To-Sysop.
  6166.    
  6167.     NOTE: Items in the msgs-to-sysop folder are counted as FEEDBACK so if your
  6168.           "VF" (View Feedback) command returns empty and you still have a
  6169.           non-zero feedback counter, check mail-to-sysop using your "VS"
  6170.           command before reporting this as a bug.
  6171.  
  6172. 9.  IUUMAIL bug fixed, where imported mail was directed to the wrong mailbox.
  6173.  
  6174. 10. The same bug that plagued IUUMAIL was found in TOSS and IFIDO.  All
  6175.     fixed.
  6176.  
  6177. 11. Fixed "checkable" control menuitems (no new users, sysop is in, etc..)
  6178.  
  6179. 12. Fixed amaint problem of deleting the same users over and over again.
  6180.  
  6181. 13. systext:vde/subboard has been altered, the subboard VDE has been
  6182.     reorg'd and the following new FILE_ID.DIZ processing configuration
  6183.     variables exist for EACH subboard:
  6184.  
  6185.         DizTypes:  Archive types to allow diz processing on. 0-31 are allowed
  6186.                    and match the type in the "Archivers" section of config.
  6187.                       ie flag 0 = the first archiver,
  6188.                          flag 2 = the second archiver
  6189.                          etc,.
  6190.  
  6191.         DizSave:   settings: 1 = Save Edited Diz = save/replace edited diz to archive
  6192.                              0 = Don't Save Diz  = don't save/replace diz to archive
  6193.         UseSentBy: settings: 1 = Add sent-bys    = add sent-bys to description/diz
  6194.                              0 = Ignore sent-bys = don't add sent-bys to diz/description
  6195.         DizEdit:   settings: 1 = Diz Edit = allow DIZ editing by user
  6196.                              0 = No edits = no user diz edits
  6197.  
  6198. NOTE: Due to my having to release this beta prematurely, the DIZ processor
  6199.       is not yet functional.  I will address the significance of the DIZ
  6200.       settings and provide example DIZ strings for config when the DIZ
  6201.       functions are implemented, most likely in one of the next two beta
  6202.       releases.
  6203.  
  6204.  
  6205. Changes/fixes for v4.12d (beta)
  6206. -------------------------------
  6207. pre-notes: please be patient with these things.  The mail system re-write
  6208.            was a large undertaking and these things are bound to pop up in
  6209.            something so diverse as the new mail system.  The new system is
  6210.            ultimately more powerful than the old one and allows easy internal
  6211.            feature expansion. Once fixed, these bugs should not ever resurface.
  6212.            I am attacking them as fast and furious as possible.  Please let
  6213.            me know if there are any more residual mail bugs ASAP.
  6214.  
  6215.            Also this release was much delayed so as to assure that events are
  6216.            100% bug-free.  There were many problems with the way Perspective's
  6217.            CNet AMIGA v4.0 handled events and these did not become apparent
  6218.            until 4.11 when I had events working "in principle" although they
  6219.            were very buggy because of the time handling code (ie. the many many
  6220.            ChangeDirs to your CNet partition and "env:".  You may still see the
  6221.            odd CD to env: but that activity has been reduced by over 800%.
  6222.  
  6223. 1.  This is once again a full package as the libraries have changed and
  6224.     version/revision numbers for the libraries have changed.
  6225.     cnet.library and cnet4.library are now correctly numbered (v4.3).
  6226.     From this point on, any changes that do not require a complete distribution
  6227.     archive will be placed online (at The Metal Shoppe first) as single
  6228.     executables to save LD sysops phone charges.
  6229. 2.  mail-task problem caused lockups.  Fixed.
  6230. 3.  Added "send mail to ... Is this correct?" prompt after TO and CC
  6231.     filled in.
  6232. 4.  Related to above, FTN (fidonet) netmail "TOs" and "CC's" are now
  6233.     expanded to the full remote user and system name for verification by user.
  6234. 5.  UUCP/FIDO mailsend access was not being checked before allowing mailsends
  6235.     to network addresses.
  6236. 6.  Toss/XFido problem that added some extraneous characters to outgoing msg
  6237.     headers fixed.
  6238. 7.  Toss problem that duped addresses on replies, fixed.
  6239.     (ie. Ray Akey@1:246/74@1:246/74)  Old mail may stil "look" broken
  6240.     when you reply but new mail is imported fine.
  6241. 8.  Online maint users now receive notification (System OLM) when feedback or
  6242.     new user applications are received/filed.
  6243. 9.  Quoted text (via the flags you set before entering the editor) during
  6244.     mail reply appeared below the user's signature.  Fixed.  It now appears
  6245.     above the user's signature.
  6246. 10. Cron has been updated to include settings for a "start date and time"
  6247.     which now gives the capability of "postdating" events to start sometime
  6248.     in the future.
  6249. 11. Cron received "repeat" settings for Days, Hours and Minutes.  These
  6250.     settings are use, for example, to cause and event to be repeated every
  6251.     x days, y hours and z minutes.
  6252.     
  6253.       Examples: DAYS=0, HOURS=1, MINUTES=0 to have an event repeat every
  6254.                 hour.
  6255.  
  6256.                 DAYS=1, HOURS=0, MINUTES=0 to have an event repeat every
  6257.                 24 hours.
  6258.  
  6259.                 DAYS=0, HOURS=1, MINUTES=30 to have an event repeat once
  6260.                 every hour and 1/2.
  6261.  
  6262.                 DAYS=1, HOURS=6, MINUTES=0 to have an event repeat every
  6263.                 day and 1/2.
  6264.  
  6265.  
  6266.             Alternatively, you can specify, for example, 48 repeat HOURS
  6267.             and Cron will adjust the days, hours and minutes accordingly...
  6268.  
  6269.             You can also specify a "start date" as some date in the past
  6270.             and Cron/Control will bring the date up to the current date
  6271.             (if the event is a "repeat event") automatically, assuring
  6272.             that the "repeat time" is strictly followed.
  6273.  
  6274.             If you specify a date in the past (ie. 08-Jan-78) for an event
  6275.             that is not repeated (ie. no repeat days, hours or minutes set)
  6276.             the event will simply be deleted. Please keep this in mind when
  6277.             adding "predated" events.
  6278.  
  6279. 12. Added sysdata:log/events log to allow sysops easy verification that
  6280.     events have or have not been executed.
  6281.  
  6282.  
  6283.  
  6284. coming: Mail-Aliases (as a few have noticed) are not yet re-implemented but
  6285.         should be for the next beta.  They will be more powerful than the
  6286.         previous aliases used in versions 4.0-4.10 and will allow full
  6287.         editing, deletion and addition.  Aliases will be allowed for ANY
  6288.         mail address..   Local, Fidonet, internet etc,..  These also
  6289.         will pass through the "Access filter" to be sure a user cannot, for
  6290.         example, send fido alias mail if he/she does not have fido mail
  6291.         access. I had intended to have Mail-aliases in this release but
  6292.         let's face it, you guys needed a fix for your lockup problems
  6293.         before Mail aliases were resumed.  Mail-aliases will FOR SURE
  6294.         be back in for the next beta (v4.12e).
  6295.  
  6296.         FILE_ID.DIZ support.  v4.13 or v414 should have DIZ support fully
  6297.         implemented (or at least functional anyways).    I'm sure more
  6298.         diz options/features will be added over time.
  6299.  
  6300.         The old subboard name restrictions are being lengthened (someday
  6301.         REMOVED altogether, but not yet) to allow longer Usenet newsgroup
  6302.         names to be used.
  6303.  
  6304.         The subboard conversion program is already written and tested but I
  6305.         have some work to do in converting existing code to allow/use the
  6306.         longer names and also adding/altering the VDE for the new DIZ options.
  6307.         If you have suggestions for the DIZ processor, please get them in NOW
  6308.         if you want to see them in the first DIZ beta release.
  6309.  
  6310.  
  6311. Changes/fixes for V4.12c
  6312. ------------------------
  6313. REMEMBER: This IS a PUBLIC (4.x registered users only!) beta.  If you aren't
  6314.           up for a little bit of testing and a few possible bugs here and
  6315.           there, then please do not install this beta until initial reports
  6316.           are in from those who are willing/able to beta this release.
  6317.  
  6318. 1.  Getuser offsets had inadvertently shifted in v4.12b.  They are now
  6319.     back to normal and are once again compatible with getusers previously
  6320.     used in MCI and ARexx doors.   Some getusers may change in the future
  6321.     but not nearly as drastically as they mistakenly did in v4.12(a).
  6322. 2.  Code added to prevent CNet from popping up "please insert volume xxx"
  6323.     system requesters when a file/directory cannot be found.
  6324. 3.  "move read items to trashcan" prompt only appears when there is already
  6325.     read items in inbox, feedback or newuser boxes.
  6326. 4.  "empty trashcan?" prompt only appears when there are messages in trashcan.
  6327. 5.  User login macros are now all executed BEFORE the "main menu" appears.
  6328. 6.  The "412" upgrade executable in v4.12b did not work properly on systems
  6329.     that used a small stack size as it was created using some previous
  6330.     Perspective Software wrapper code. This has changed and stack size is no
  6331.     longer a factor for the 412 upgrade executable.
  6332. 7.  The license window is no longer "activated" when it opens.
  6333. 8.  Count was not counting any of the mail, feedback or newuser applications.
  6334.     Fixed.  When count is processing mail directories, an asterisk is printed
  6335.     when a FOLDER is found, and a period is printed when an actual mail/feedback
  6336.     or newuser application is found.
  6337. 9.  Ifido bug fixed where many posts/responses were chained to the end of
  6338.     other messages.
  6339. 10. OLM save to mail was broken.  Fixed.
  6340. 11. Added "NET" command to mail read, to display information about the
  6341.     system from which netmail was sent. NET command added to the end of BBSMENU
  6342.     section "7; Mail Read" to enable this command.  Also added display lines to
  6343.     the end of bbstext for this feature.
  6344.  
  6345.  
  6346. Changes/Fixes for v4.12b
  6347. ------------------------
  6348.  
  6349. (limited beta release - only released to a few beta-testers to avoid mass
  6350.  hysteria re: bugs :)
  6351.  
  6352. CHANGES
  6353. -------
  6354. 1. A completely new/re-written event scheduler!
  6355.  
  6356.    Gone is the CBase event-schduler previously introduced in the 4.x series
  6357.    by Perspective Software.
  6358.  
  6359.    The command CRON is now used to schedule your CNet events.  It is very
  6360.    simple to use and features a font-sensitive interface.  Please be
  6361.    aware that some large fonts may corrupt the display.  ZenMetal recommends
  6362.    a size 16 or less font for your Workbench SCREEN font.  This is the font
  6363.    that CNet/CRON uses for it's interface.  In the future, if problems arise
  6364.    for some sysops, if a font larger than size 15 is used for your WB screen
  6365.    font, Cron will default to using an 8 point CNet font.  Please let me
  6366.    know if the current CRON gives you any display problems.  This is CNet's
  6367.    first font-sensitive configuration editor and, if it goes over well, all
  6368.    other local GUI editors will be converted to a font sensitive interface.
  6369.  
  6370.    The only field/attribute that may seem cryptic about the new cron (and the
  6371.    old config event scheduler) is the "valid" setting.  This field holds the
  6372.    amount of time (HH:MM) that the event will remain valid, past the "start
  6373.    time" of the event.  That is, if the current time is greater than the
  6374.    start time PLUS the valid time, the event will be skipped.  If the current
  6375.    time is greater than the start time (but less than the start time PLUS the
  6376.    valid time) the event will be executed.  Once executed, the event should
  6377.    not be executed again until the next day set (via the DAYS checkboxes).
  6378.    if anyone comes across any problem where a single event is being executed
  6379.    more than once per day (if enabled every day), please notify ZenMetal ASAP.
  6380.  
  6381.    Note that the "Name" of the Event is an identifier.  that is, CNet really
  6382.    does not use this field.  It is for your recognition only, but each event
  6383.    MUST have a Name unique from other Events. You cannot have two events
  6384.    named AMAINT, for example.  If you need amaint to run twice a day, call one
  6385.    "Amaint1" and the other "Amaint2".
  6386.  
  6387. 2. A bug crept in v4.11 in which the "W" command did not work properly in
  6388.    File bases.  It did not allow editing of short file descriptions.  This
  6389.    has been fixed.
  6390.  
  6391. 3. The mail subsystem has a new filing system.  It looks almost like the
  6392.    old 4.x system from the user/sysop point of view but it is much more
  6393.    efficient and unlike the CMail-based mail system, the new one does
  6394.    not "grow" in size, never to be reduced.  As soon as a mail item is
  6395.    killed, you relinquish almost all hard drive space that was allocated
  6396.    for that item.  There will soon be a "Repair_Mail" utility to do much
  6397.    the same as the Repair_Sub utility does for your message/file bases.
  6398.    It will clean up old text and headers that, for some reason, didn't get
  6399.    deleted.
  6400.  
  6401.    There are some subtle visual changes that you'll notice as time passes.
  6402.  
  6403.    Also, Feedback and Newuser mail goes to mail:users/SYSOP/FOLDERS/#?.
  6404.    This allows you and your CoSysops to switch between reading feedback and
  6405.    newuser mail by simply changing folders.
  6406.  
  6407.    Multiple TO's and CC's are now 100% implemented and, when you enter the
  6408.    editor, after selecting the appropriate flags for your mail item, the
  6409.    FIRST recipient recieves name/handle expansion, in that his is the name
  6410.    listed in the "To:" line at the top of Vis-Ed and the line editor. The
  6411.    other recipients are still valid but are not expanded.  It would not be
  6412.    worth the trouble to lose a line of Vis-Ed display just to print the names
  6413.    of ALL the recipients.  Especially when CNet now allows up to 200
  6414.    characters for "TO:" and 200 characters for "CC:".  I think the list of
  6415.    expanded names would get rather large, even larger than Chesty Morgan. ;)
  6416.  
  6417.    Mail is now "distributed" rather than simply saved.  That is, upon saving
  6418.    an item, you will be notified that CNet is "dispatching" a copy of the
  6419.    mail to each user who was listed in the "TO" and "CC" fields that you
  6420.    specified.   At this point, all users' names will be expanded to their
  6421.    name, handle, or network address, whichever applies to the type of mail
  6422.    being sent.
  6423.  
  6424.    Currently (as a holdover from Perspective's v4.0-v4.08), mail-task
  6425.    searches for pending mail-requests every 10 seconds.  You will
  6426.    (if you use Eddy Carrol's SnoopDOS or some other system activity monitor)
  6427.    notice CNet looking for something called ENV:TZ..  This is something that
  6428.    SAS/C uses to dicern your timezone.  The timezone setting is the number of
  6429.    hours from Greenwich Mean Time (GMT).  Do not concern yourself with this
  6430.    as I have not altered any of the time functions and Ken (Pletzer of course)
  6431.    did not take this into account when coding CNet's time functions.  If you
  6432.    set a time zone for your system, CNet will most likely calculate your
  6433.    local time incorrectly...unless you are living 0 hours from GMT :)
  6434.    These things will be changed in the future.  In the future, when mail is
  6435.    saved, mail task will be notified that there are pending items waiting to
  6436.    be processed so that they may be processed as quickly as possible.
  6437.  
  6438.    Known mail/folder bug(s): When mail-task files a new item in a folder
  6439.    while you are reading/scanning mail items in that folder, CNet does not
  6440.    update the mail listing until you quit mail-read and re-enter <<OR>>
  6441.    change folders and then change folders AGAIN to go back to your inbox.
  6442.    The item is SAVED but it just doesn't appear in your "header listing"
  6443.    until you quit mailread or change folders.  This will be fixed for v4.12c.
  6444.    I wanted to get this release out to put an end to the "lost mail" problem
  6445.    so I felt that this is only a small oversight rather than a "bug" in the
  6446.    true sense of the word.
  6447.  
  6448. 4. Much other internal optimization of code to speed up Toss and other
  6449.    areas of CNet.  The event scheduler is going to receive still more
  6450.    optimization for the next release.  I mainly rushed this out the door
  6451.    before further optimization so as to give Sysops a chance to get their
  6452.    events running again.  Also, the new event system does not currently have
  6453.    a "repeat" attribute.  That is, events that must run many times during
  6454.    the day will either have to be entered more than once (ie. for network
  6455.    mail polling, you may want to set up events to poll every hour.. For this,
  6456.    you will be required to set up 24 seperate events).  This is only a
  6457.    temporary problem as "repeat" hours and minutes will be re-implemented
  6458.    in an upcoming release.
  6459.  
  6460. 5. MCI code ; has been added to allow comments in MCI scripts and BBSTEXT.
  6461.    Note that some BBSTEXT lines still do not allow MCI.  Generally, the ones
  6462.    that already have MCI in them are safe.  Please netmail/email me if you
  6463.    are unsure about certain lines.  Some of the new changes are already
  6464.    commented using the format:
  6465.  
  6466.      {; this is a comment}
  6467.  
  6468.       ^
  6469.       |
  6470.       CTRL-Q
  6471.  
  6472.  
  6473.    Special Notes: For the v4.12b release ONLY, Mail-Aliases have not yet been
  6474.    coded back in.  It's an easy thing to insert into the code but I just
  6475.    want to get the initial beta of the new mail filing system tested and
  6476.    completely up to snuff.  Mail-Aliases will return in v4.12c.  Also, the
  6477.    newer quoting style (you know..the quoted text UNDER your reply?) is gone
  6478.    but the former 3.x quoting method is still completely active (CTRL-Q in
  6479.    Vis-Ed and .Q or /Q in Line-Ed. If any of you want it back, this is also
  6480.    simple to add back in.  Just let me know if you want it.  I chose to
  6481.    remove it temporarily as many of you (and myself also) didn't like it.  But
  6482.    if you want it back in..
  6483.  
  6484. 6. Count was not counting any of the mail, feedback or newuser applications.
  6485.    Fixed.  When count is processing mail directories, an asterisk is printed
  6486.    when a FOLDER is found, and a period is printed when an actual mail/feedback
  6487.    or newuser application is found.
  6488.  
  6489.  
  6490. 3rd Party Developers
  6491. --------------------
  6492. A CNet Developer's Kit will be released in the hopefully near future.  The
  6493. Subboard structures need some attention before I can/will release any of the
  6494. header files.  Also, SOME getusers have changed.  If any of your getusers no
  6495. longer work, don't panic, just let me know in either the fidonet CNET_BBS,
  6496. C-Link CLINKCNETAMIGA, any of the ATechNet CNet echos or by EMail/netmail
  6497. and I will reply with the correct getusers to use for this version.
  6498. (I expect Dotoran will be the first to contact me :)
  6499.  
  6500.  
  6501. ...anyways, there is much, much, MUCH more to come!  We still have some bugs
  6502. to swat now that the events and Mail are "seemingly" settled.  Let me know
  6503. ASAP if you have any bugs that weren't yet reported, especially those relating
  6504. to the new mail-filing system or the new "CRON" event editor or events that
  6505. won't run, etc,.  Now that the really major things are fixed, the small bugs
  6506. (ie. IFido's infamous "import everything into one message" problem, etc) can
  6507. be tended to and then on to NEW FEATURES that I've been talking about while
  6508. implementing the new mail and event systems..
  6509.  
  6510.  
  6511. Until the next release..  ENJOY!
  6512. -Ray
  6513.  
  6514.  
  6515. Changes/Fixes for v4.11
  6516. -----------------------
  6517. Please be aware that this release does NOT fix many of the bugs reported
  6518. thus far.  This release is mainly to give you a stable 4.11 so that you
  6519. can at least have an operational system up and running.  The next release
  6520. will fix many more bugs reported since ZenMetal acquired CNet AMIGA.  Changes
  6521. and fixes are outlined below.
  6522.  
  6523.  
  6524. NOTE: YOU MUST FIRST INSTALL THE NEW LIBRARIES FOUND IN THE "SYS" SECTION
  6525.       OF THIS DISTRIBUTION AND THEN RUN THE 411 EXECUTABLE CONVERSION
  6526.       PROGRAM BEFORE RUNNING VERSION 4.11.  The conversion will set
  6527.       UUCP ID's according to item (5) below.
  6528.  
  6529.       "411" is an AmigaDOS executable that you must run from a Shell or
  6530.       CLI process.
  6531.  
  6532.       ALSO, IMMEDIATELY AFTER YOU RUN 411, YOU MUST LOGON TO YOUR BBS
  6533.       AND IMMEDIATELY RUN THE CNet/C DOOR "BASE0:DOORS/POINTERS" so that
  6534.       your users' handle/UUCP/phone pointers are updated.  If you get
  6535.       the message "could not open mailbox (-1)" before running pointers
  6536.       do not be alarmed as "pointers" will cure that.
  6537.  
  6538.       Please be aware that the SYSOP's UUCP id will be altered also.  If
  6539.       you wish to change it, please do so after running pointers. 
  6540.  
  6541.  
  6542. 1. IFIdo/XFido now have their own logs in sysdata:log rather than logging
  6543.    their activity to sysdata:log/maint.
  6544. 2. bbstext lines 781 & 782 changed to allow insertion of mail processing
  6545.    programs such as SuperTags to work on the _EdBuff file before it is
  6546.    saved.  Any programs that wish to operate on the _EdBuff file for mail
  6547.    items, should be added to bbstext line 781.
  6548. 3. Functions added to CNet.library:
  6549.       short   FileExists(char *filename);   /* checks if file exists */
  6550.       void   CreateMailDir(char *uucpid);   /* creates user's mail directory if non-existant */
  6551.  
  6552. 4. User mail directory names are once again the same as their UUCP id.
  6553. 5. UUCP ID can now only be changed by the SYSOP via "EA" to avoid user abuse.
  6554.    Please note that users wityh "full remote maint" can change their own UUCP
  6555.    ID.
  6556.  
  6557.    By default, CNet sets new users' mailbox names according to the following
  6558.    algorithm (UUCP ID is limited to 8 characters MAXIMUM):
  6559.  
  6560.    first character   = first initial of FIRST name
  6561.    next 7 characters = first 7 letters of LAST name, or less if last name is
  6562.                        shorter than 7 characters.
  6563.  
  6564.    the string is converted to LOWER case as the UUCP ID is created.
  6565.  
  6566.    So, CNet would set UUCP IDs as the following examples show:
  6567.    
  6568.       First Name            : Ray
  6569.       Last Name             : Akey
  6570.       resultant CNet UUCP ID: rakey
  6571.  
  6572.       First Name            : Jack
  6573.       Last Name             : Nicholson
  6574.       resultant CNet UUCP ID: jnichols
  6575.  
  6576.    The name is then checked with all other UUCP ID's currently in use and
  6577.    if a duplicate is found, the LAST character is replaced with a numeric
  6578.    digit of ascending order.
  6579.  
  6580. 6. BMaint altered so that it will create "nested" or hierarchical
  6581.    directory structures.  To do this, the "unique subboard name" prompt
  6582.    now allows the forward slash (/)
  6583.  
  6584.       ie. To create an aminet/biz/misc mirror, simply use the following
  6585.           information.
  6586.  
  6587.           Title to appear on list:     Miscellaneous Business Soft.
  6588.           Name Used On Disk (unique):  aminet/biz/misc
  6589.           Path to subboard data files: base0:aminet/biz/misc/
  6590.  
  6591.    This also allows your users to enter "GO aminet/biz/misc" to get
  6592.    to that subboard.
  6593.  
  6594. 7. Began removing CNet's dependancy on AmigaDOS commands (ie. delete,
  6595.    makedir, etc..)  All base directory structures are now created using pure
  6596.    C function calls.
  6597. 8. Added check for lost QWK/Yank packets when users login.  Previously,
  6598.    packets may have been lost in the event of software failures etc,..
  6599. 9. "_atemp" file is no longer getting packed into yanked email QWK packets.
  6600.  
  6601.  
  6602. Changes/Fixes for v4.1
  6603. ----------------------
  6604. 1. CNet/Control now has possible two iconified states.  If Workbench is
  6605.    loaded, Control iconifies to an AppIcon.  If the AppIcon cannot be opened,
  6606.    the old "Perspective C" window will be used.
  6607. 2. Related to the above, the default AppIcon imagery is the "Perspective C"
  6608.    image.  You can have your own icon imagery used for the AppIcon if you
  6609.    create and save your icon as CNET:AppIcon.info. Included in this
  6610.    distribution is a file called CNetAppIcon.info.  Copy it to CNET: as
  6611.    AppIcon.info to use it.  It is a nice 3d-looking AppIcon image for CNet.
  6612. 3. Added appicon position setting to Config's "Display" settings.  Click
  6613.    on the "Appicon" cycle gadget to open a small "Move me!" window.  Place
  6614.    the window where you want your CNet/Control Appicon to appear when
  6615.    iconified and then click again on the same button (now having the text
  6616.    "Close position window") to save your icon position.  The appicon is
  6617.    immediately notified of your changes and moves to it's new location.
  6618. 4. CNet/Control menus were altered slightly to allow for easier future
  6619.    expansion.  The changes are mostly in the visual ordering of the menu
  6620.    items.  Please be aware that some menu items received new Amiga-key
  6621.    equivalents/short-cuts.
  6622. 5. Fixed bug in "Missing" that popped up "please insert volume udbasex:".
  6623.    This was a hold-over from the days when CNet used a UDBaseX: assignment.
  6624.    (addendum: this problem was also simultaneously corrected by Mr. Pletzer
  6625.     in the v4.08 public release)
  6626. 6. Missing no longer attempts to check non-file/message list objects.
  6627.    (addendum: this problem was also simultaneously corrected by Mr. Pletzer
  6628.     in the v4.08 public release)
  6629. 7. GO argument is now displayed when a user enters a subboard.
  6630. 8. Fixed bug that caused problems when attempting to run a port while that
  6631.    port is already running. (ie. "run bbs port 3" while port 3 is already
  6632.    loaded).
  6633. 9. CNet no longer pops up requesters when moving files from subboard to
  6634.    subboard and the destination partition becomes full.  CNet simply
  6635.    states that the file could not be moved.
  6636.  
  6637.  
  6638.  
  6639. Note: A CNet demo is available on aminet in the comm/cnet directory.
  6640.  
  6641. Complaints
  6642. ----------
  6643.  
  6644. If you have any immediate concerns or complaints, please netmail your
  6645. query to one of the following network addresses or contact one of the
  6646. support systems mentioned in the "Bug Reports/Support" section and we'll
  6647. get back to you ASAP:
  6648.  
  6649.           Ray Akey@1:246/74.0
  6650.           rakey@cnetbbs.net
  6651.  
  6652.  
  6653.  
  6654. Sales/Development/Bug Reports/Support/Registration
  6655. --------------------------------------------------
  6656. Metal Software/The Metal Shoppe BBS
  6657. Attn: Ray Akey
  6658. 411 Bridge Ave.
  6659. Windsor, ON
  6660. Canada  N9B 2M3
  6661. BBS: (519) 256-0278
  6662.      (519) 255-7378
  6663.  
  6664.  
  6665.  
  6666.  
  6667. ---
  6668. Amiga, C=, Commodore and Amiga Technologies are trademarks of Escom/AG.
  6669. SAS/C is Copyright (c) 1988-1995 SAS Institute, Inc.
  6670. CNet Amiga is copyright ZenMetal Software.
  6671.